我找到了一种解决方案,可以在this post中运行一个蜘蛛的多个版本。
所以我用几个不同的Windows命令一次运行了这几个版本:
scrapy crawl spider -a lo_lim=2005 -a up_lim=2007 ...
scrapy crawl spider -a lo_lim=2007 -a up_lim=2009 ...
scrapy crawl spider -a lo_lim=2009 -a up_lim=2011 ...
我一次使用了7个版本。
我的问题是,当我像这样跑很多蜘蛛时,我亲眼看到了这个过程变得如此缓慢。这在'finish_time'
和'start_time'
的日志中也可见。如果一次使用两个版本,每个命令大约需要1个小时。如果我一次使用七个版本,则每个命令要花费七个多小时,甚至更多。
在settings.py
中,我写了
CONCURRENT_REQUESTS = 128
DOWNLOAD_DELAY = 0.25
CONCURRENT_REQUESTS_PER_IP=64
AUTOTHROTTLE_ENABLED = False
我肯定这还不够,因为我看到了结果,但是认为这些配置是提高速度的方法我是否错了?我该怎么做才能使抓取速度更快?
PS:我将Tor与Vidalia和Polipo一起使用。所以我知道我的连接不能很快,这就是匿名性的缺点。但是真正的问题是我一次运行多个。而且我的CPU远远没有达到其最大容量。
Scrapy版本:1.5.0,Python版本:2.7.9