Size: a a a

2021 May 20

A

Alex in Scrapy
Я не пользуюсь скрапи, и сходил из только из примера выше, ну и главное: https://t.me/scrapy_python/64601
источник

МС

Михаил Синегубов... in Scrapy
ок, ладно замяли, тем боле, что вопрос совсем не в этом.
а в том, что, из 5-10 тыс вызовов, на нескольких - эта переменная теряется
источник

A

Alex in Scrapy
Ок. Я потому и сделал скромное предположение, что, возможно, причина была в этом, что на выходе внутри
def parse(self, response, **kwargs):
   cat =kwargs.get('cat')
получается None. Не знал, что происходит деструктуризация словаря. Значит, причина не в этом...
источник

A

Alex in Scrapy
Еще вопрос: какой тип возвращает request.meta.get('proxy')?
источник

МС

Михаил Синегубов... in Scrapy
строку
источник

A

Alex in Scrapy
А None быть не может?
источник

МС

Михаил Синегубов... in Scrapy
нет, при данном использовании.
но, даже если и может, то, при ~100-150 выполнениях проблем не было
источник

МС

Михаил Синегубов... in Scrapy
от 100% там какая то нубятская хрень...
источник

A

Alex in Scrapy
Я, может, сейчас снова спрошу что-то очевидное в отношении скрапи, но где формируется этот словарь cb_kwargs={'cat': cat}? Как данные попадают внутрь start_requests()?
источник

A

Alex in Scrapy
Просто ощущение, что что-то не успевает отрабатывать
источник

A

Alex in Scrapy
И если попробовать дебагером пройтись?
источник

МС

Михаил Синегубов... in Scrapy
Вообще не понял вопроса....
Старт реквест срабатывает при старте паука. Он, по сути, генерит очередь запросов.
Исходные данные - локальная для данной функции переменная.
Если ты про это
источник

МС

Михаил Синегубов... in Scrapy
Ну, я им постоянно подьзуюсь
источник

МС

Михаил Синегубов... in Scrapy
Ещё раз, это возникает один раз на несколько тыс выполнения, дебажить десяток мидлварей на этих запросах...
источник

A

Alex in Scrapy
Да, я про это. Если внутри функции, то то, что содержит переменная cat (опять же: что она содержит и что за данные в ней, как формируются) каким-то образом содержит или не содержит ожидаемое. Если я правильно понял слово "теряется" в данном контексте.
источник

МС

Михаил Синегубов... in Scrapy
нет, я перестарался с удалением
def start_requests(self):
   catalogs = ['set1', 'set2']
   for cat in cats:
       data={....}
       yield JsonRequest('site.ru', data=data,   cb_kwargs={'cat': cat})


вообще, все переменные в данном методе статичные, и внутри метода, из вне ничего не приходит
источник

МС

Михаил Синегубов... in Scrapy
в data две константы + этот cat, если data будет не верным, то запрос не попадет в parse
источник

A

Alex in Scrapy
А в parse() в kwargs приходят данные только из start_requests()? Вопрос в том, в тех случаях, когда происходит та ошибка, kwargs внутри parse() пустой? Или туда приходит словарь, но с пустыми значениями?
источник

A

Alex in Scrapy
Ну, т.е. в тех случаях cat = kwargs.get('cat') == None?
источник

A

Alex in Scrapy
или ключа cat вообще нету в kwargs?
источник