2017-05-18 34 views
2

根據https://doc.scrapy.org/en/latest/topics/media-pipeline.html,Scrapy的文件管道和圖像管道「避免重新下載最近下載的介質」。Scrapy如何避免重新下載最近下載的媒體?

我有一個蜘蛛,我正在運行使用job directoryJOBDIR)以暫停和恢復爬網。起初,我在沒有下載文件的情況下正在抓取項目;稍後,我添加了一個文件管道。然而,我忘了刪除JOBDIR,然後用Pipeline重新運行蜘蛛'真實'。

我害怕的是JOBDIR中的requests.seen文件中將包含已被抓取的項目的指紋,但其中沒有抓取的文件(因爲管道在被抓取時尚未到位) 。我正在考慮做的是刪除JOBDIR並開始從乾淨的石板上再次刮擦。

我的問題是:這項工作不需要再次下載所有文件?或者FilesPipeline是否依賴JOBDIR跳過最近已經下載的文件? (順便說一句,我的FILES_SOURCE是一個S3存儲桶)。

+1

也許你可以嘗試在'scrapy.Request'中設置'dont_filter = True' –

回答

1

據我所知,scrapy計算文件的名稱(通常是從圖像的url base64),如果文件存在於文件夾中,scrapy不會嘗試下載它。