python - 如何使用 Scrapy 一次更快地运行一个蜘蛛的多个版本?
问题描述
我在这篇文章中找到了一个运行多个版本的单个蜘蛛的解决方案。
所以我用几个不同的 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
解决方案
推荐阅读
- microsoft-dynamics - TaxTrans 和 LedgerTrans [AX 2009] 中的不同汇率
- c# - 为什么Thread类中没有Dispose函数
- nexus - Nexus 2.x OSS 是否支持多版本/自动老化?
- python-3.x - 为什么我的程序等待未加入的线程?
- c - ftell 如何影响以 'r' 而不是 'rb' 模式读取的二进制文件?
- python - 获取与 DOM 元素关联的事件列表
- php - 如何为 wordpress 制作 OG 图片
- mysql - 多个或查询中的顺序会影响相关性吗?
- haskell - 在构建中包含美味快速检查的问题
- reactjs - 垂直对齐 div 元素