CookieがScrapyとどのように連携するか、およびそれらのCookieをどのように管理するかについて少し混乱しています。
これは基本的に私がやろうとしていることの単純化されたバージョンです:
ウェブサイトの仕組み:
Webサイトにアクセスすると、セッションCookieを取得します。
あなたが検索をするとき、ウェブサイトはあなたが検索したものを記憶しているので、あなたが結果の次のページに行くようなことをするとき、それはそれが扱っている検索を知っています。
私のスクリプト:
私のスパイダーの開始URLはsearchpage_urlです。
検索ページはによって要求されparse()
、検索フォームの応答はに渡されますsearch_generator()
search_generator()
次に、と検索フォームの応答yield
を使用した多数の検索要求。FormRequest
これらの各FormRequestとそれに続く子リクエストには、独自のセッションが必要であるため、独自の個別のcookiejarと独自のセッションcookieが必要です。
クッキーのマージを停止するメタオプションについて説明しているドキュメントのセクションを見てきました。それは実際にはどういう意味ですか?それは、リクエストを行うスパイダーが、その存続期間中、独自のcookiejarを持つことを意味しますか?
クッキーがスパイダーごとのレベルにある場合、複数のスパイダーがスポーンされたときにどのように機能しますか?最初のリクエストジェネレーターのみが新しいスパイダーを生成し、それ以降はそのスパイダーのみが将来のリクエストを処理するようにすることは可能ですか?
複数の同時リクエストを無効にする必要があると思います。そうしないと、1つのスパイダーが同じセッションCookieで複数の検索を行い、将来のリクエストは最後に行われた検索にのみ関連しますか?
私は混乱しています、どんな説明も大いに受け取られるでしょう!
編集:
私が今考えたもう1つのオプションは、セッションCookieを完全に手動で管理し、ある要求から別の要求に渡すことです。
これは、Cookieを無効にしてから、検索応答からセッションCookieを取得し、それを後続の各要求に渡すことを意味すると思います。
これはあなたがこの状況ですべきことですか?