簡単なクローラーをコーディングしました。settings.py ファイルでは、scrapy のドキュメントを参照して、
DUPEFILTER_CLASS = 'scrapy.dupefilter.RFPDupeFilter'
クローラーを停止して再度クローラーを再起動すると、重複する URL が再びスクレイピングされます。私は何か間違ったことをしていますか?
簡単なクローラーをコーディングしました。settings.py ファイルでは、scrapy のドキュメントを参照して、
DUPEFILTER_CLASS = 'scrapy.dupefilter.RFPDupeFilter'
クローラーを停止して再度クローラーを再起動すると、重複する URL が再びスクレイピングされます。私は何か間違ったことをしていますか?
ドキュメントによると、DUPEFILTER_CLASS
はデフォルトですでに に設定さscrapy.dupefilter.RFPDupeFilter
れています。
RFPDupeFilter
クローラーを停止しても役に立ちません。実際のクロール中にのみ機能し、重複する URL のスクレイピングを回避するのに役立ちます。
ここで行われたように、に基づいて独自のカスタムフィルターを作成する必要があるようですRFPDupeFilter
: how to filter duplicate requests based on url in scrapy . スクレイピー クロール セッション間でフィルターを機能させたい場合は、クロールされた URL のリストをデータベースまたは csv ファイルのどこかに保持する必要があります。
それが役立つことを願っています。
Scrapy-redis のように Redis で Scheduler を書き換えることができ、プロジェクトを再実行するときに重複する URL クロールを回避できます。