Я, может, сейчас снова спрошу что-то очевидное в отношении скрапи, но где формируется этот словарь cb_kwargs={'cat': cat}? Как данные попадают внутрь start_requests()?
Вообще не понял вопроса.... Старт реквест срабатывает при старте паука. Он, по сути, генерит очередь запросов. Исходные данные - локальная для данной функции переменная. Если ты про это
Да, я про это. Если внутри функции, то то, что содержит переменная cat (опять же: что она содержит и что за данные в ней, как формируются) каким-то образом содержит или не содержит ожидаемое. Если я правильно понял слово "теряется" в данном контексте.
А в parse() в kwargs приходят данные только из start_requests()? Вопрос в том, в тех случаях, когда происходит та ошибка, kwargs внутри parse() пустой? Или туда приходит словарь, но с пустыми значениями?