2012-08-14 645 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