2019独角兽企业重金招聘Python工程师标准>>>
DOWNLOAD_TIMEOUT
Default: 180
The amount of time (in secs) that the downloader will wait before timing out.
Note
This timeout can be set per spider using download_timeout
spider attribute and per-request using download_timeout
Request.meta key.
http://doc.scrapy.org/en/latest/topics/settings.html
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
现象就是:
程序运行一段时间,可能是几十分钟或者几个小时,然后后台日志里面就不出现下载页面的信息,一直显示上一分钟抓取了0个网页的信息。
刚开始已经猜到是某些下载线程没有正常执行回调方法引起程序一直以为线程还未下载完成,但是水平有限研究源码未果。
经过不停的google终于发现一个有价值的信息,是给twisted提出的一个bugfix
连接地址如下http://twistedmatrix.com/trac/attachment/ticket/5773/patch1.diff#L739
为client加上了超时的限制,一定时间内如果无响应则执行设定的超时回调。
我把里面的timeout=0改成了timeout=10
替换后在运行scrapy程序,问题不再出现
附件中为替换好的文件,下载后直接去掉文件后缀 .rar即可
_newclient.py.rar (53.7 KB)
下载次数: 48
client.py.rar (53.5 KB)
下载次数: 30