15

簡単なクローラーをコーディングしました。settings.py ファイルでは、scrapy のドキュメントを参照して、

DUPEFILTER_CLASS = 'scrapy.dupefilter.RFPDupeFilter'

クローラーを停止して再度クローラーを再起動すると、重複する URL が再びスクレイピングされます。私は何か間違ったことをしていますか?

4

3 に答える 3

7

ドキュメントによると、DUPEFILTER_CLASSはデフォルトですでに に設定さscrapy.dupefilter.RFPDupeFilterれています。

RFPDupeFilterクローラーを停止しても役に立ちません。実際のクロール中にのみ機能し、重複する URL のスクレイピングを回避するのに役立ちます。

ここで行われたように、に基づいて独自のカスタムフィルターを作成する必要があるようですRFPDupeFilter: how to filter duplicate requests based on url in scrapy . スクレイピー クロール セッション間でフィルターを機能させたい場合は、クロールされた URL のリストをデータベースまたは csv ファイルのどこかに保持する必要があります。

それが役立つことを願っています。

于 2013-07-15T19:37:58.387 に答える
0

Scrapy-redis のように Redis で Scheduler を書き換えることができ、プロジェクトを再実行するときに重複する URL クロールを回避できます。

于 2016-10-28T15:06:30.743 に答える