Я немного озадачен тем, как файлы cookie работают со Scrapy и как вы управляете этими файлами cookie.
Это в основном упрощенная версия того, что я пытаюсь сделать:
Как работает сайт:
Когда вы посещаете веб-сайт, вы получаете сессионный cookie.
Когда вы выполняете поиск, веб-сайт запоминает то, что вы искали, поэтому, когда вы делаете что-то вроде перехода на следующую страницу результатов, он знает, с каким поиском он имеет дело.
Мой сценарий:
У моего паука есть начальный URL searchpage_url
Страница поиска запрашивается parse()
, а ответ в форме поиска передается на search_generator()
search_generator()
, затем yield
s множество поисковых запросов с использованием FormRequest
и ответ поисковой формы.
Каждый из этих FormRequests и последующих дочерних запросов должен иметь свой собственный сеанс, поэтому должен иметь свой отдельный cookiejar и свой собственный cookie сеанса.
Я видел раздел документов, в котором говорится о мета-опции, которая предотвращает слияние файлов cookie. Что это на самом деле означает? Означает ли это, что у паука, который делает запрос, будет свой собственный cookiejar на всю оставшуюся жизнь?
Если файлы cookie находятся на уровне каждого паука, то как он работает, когда появляется несколько пауков? Можно ли сделать так, чтобы только первый генератор запросов порождал новых пауков и чтобы с этого момента только этот паук имел дело с будущими запросами?
Полагаю, мне нужно отключить несколько одновременных запросов. В противном случае один паук будет выполнять несколько поисков в рамках одного и того же файла cookie сеанса, а будущие запросы будут относиться только к самому последнему поиску?
Я в замешательстве, любые разъяснения будут очень получены!
EDIT:
Еще один вариант, о котором я только что подумал, - это управление файлом cookie сеанса полностью вручную и передача его из одного запроса в другой.
Полагаю, это означало бы отключение файлов cookie ... и затем получение файла cookie сеанса из ответа на поиск и передачу его каждому последующему запросу.
Это то, что вы должны делать в этой ситуации?