2017-05-18 3 views
2

https://doc.scrapy.org/en/latest/topics/media-pipeline.htmlによると、Scrapyのファイルパイプラインと画像パイプラインの両方は、最近ダウンロードしたメディアを再ダウンロードしないようにしています。最近ダウンロードされたメディアの再ダウンロードはどのようにして行われますか?

クロールを一時停止して再開するには、私が実行しているスパイダーがjob directoryJOBDIR)です。最初は、ファイルをダウンロードせずにアイテムを擦っていました。後で、私はファイルパイプラインを追加しました。しかし、私はJOBDIRを削除することを忘れてしまい、パイプラインで '本当のために'スパイダーを再実行することはできません。

私は怖いことはJOBDIRrequests.seenファイルをかき取りされているアイテムの指紋を含んでいますが、(それらが掻き取ったときのパイプラインが整っていなかったので)そのうち何掻き取ったファイルが存在しないということです。私がやっていることは、JOBDIRを取り除き、清潔なスレートから再び掻き取りを開始することです。

私の質問です:この作業は、すべてのファイルを再度ダウンロードすることなく動作しますか?またはFilesPipelineJOBDIRに依存して、最近ダウンロードされたファイルをスキップしますか? (私のFILES_SOURCEは途中でS3バケットです)。

+1

'dont_filter = True'を' scrapy.Request'に設定しようとすることもできます –

答えて

1

私が知っているように、scrapyはファイル名を計算します(通常は画像のurlからbase64です)。ファイルがフォルダ内に存在する場合、scrapyはダウンロードしません。

関連する問題