CrawlSpiderでscrapyを使用してWebサイトのクローラーを作成しています。
Scrapyは、URLに基づいて重複リクエストをフィルタリングする組み込みの重複リクエストフィルターを提供します。また、CrawlSpiderのルールメンバーを使用してリクエストをフィルタリングできます。
私がやりたいのは、次のようなリクエストをフィルタリングすることです。
http:://www.abc.com/p/xyz.html?id=1234&refer=5678
すでに訪問したことがある場合
http:://www.abc.com/p/xyz.html?id=1234&refer=4567
注: referは、取得する応答に影響を与えないパラメーターであるため、そのパラメーターの値が変更されてもかまいません。
これで、すべてのIDを累積するセットがある場合、この機能を実現するために、コールバック関数parse_item(これが私のコールバック関数)でそれを無視できます。
しかし、それは、必要のないときに、少なくともそのページをフェッチしていることを意味します。
では、URLに基づいて特定のリクエストを送信するべきではないことをscrapyに伝える方法は何ですか?