2012-08-14 647 views
2

我正在抓取一個網站,並解析一些內容+圖片,但即使是100頁左右的簡單網站,也需要數小時才能完成這項工作。我正在使用以下設置。任何幫助將不勝感激。我已經看到這個問題 - Scrapy 's Scrapyd too slow with scheduling spiders,但無法收集太多的見解。爲什麼Scrapy速度很慢?

EXTENSIONS = {'scrapy.contrib.logstats.LogStats': 1} 
LOGSTATS_INTERVAL = 60.0 
RETRY_TIMES = 4 
CONCURRENT_REQUESTS = 32 
CONCURRENT_REQUESTS_PER_DOMAIN = 12 
CONCURRENT_ITEMS = 200 
DOWNLOAD_DELAY = 0.75 

回答

5

您確定該網站正在響應好嗎?

設置DOWNLOAD_DELAY = 0.75會迫使請求順序並在它們之間增加0.75秒的延遲。如果您刪除了這一點,那麼您的抓取肯定會更快,但是,每個域名有12個併發請求時要小心,您不會太過激烈地擊中網站。

即使延遲,它不應該需要幾個小時,所以這就是爲什麼我想知道,如果該網站是緩慢或無反應。有些網站會這樣做的機器人。

+0

那麼所有的網站都會發生這種情況。所以我擔心Scrapy體系結構是否足夠適合這種工作。順便說一下,在標準條件下應該預期的速度。例如N頁/小時左右? – 2012-08-16 04:38:51

+0

如果你的機器人沒有網絡綁定,通常你會在幾秒鐘內抓取幾百頁。問題不在於scrapy體系結構。這更像是設置,你的硬件/網絡,被抓取的網站,你的蜘蛛代碼等其他東西。 – 2012-08-23 09:29:25

+2

Shane,當你說「DOWNLOAD_DELAY = 0.75會迫使請求順序..」你是否指定了「CONCURRENT_REQUESTS」設置會被忽略? – 2016-03-27 09:24:22