scrapy 运行的过程中,为什么中间会有很长时间的停顿?

如图,这中间十分钟干啥了...

clipboard.png

emmm....猜测了一下,有可能是上面最后一条链接连接的时间太长了?但是也不至于10分钟吧,也没个超时啥的
或者是重试(Retrying)耗费的时间太久了?
会不会有可能是处理了301导致的呢?

这中间将近七分钟,都干啥了...

clipboard.png

观测了一下,好像只有scrapy.extensions.logstats在这个时候,才会长时间停顿...
百度了一下scrapy.extensions.logstats并没有相关结果...

阅读 4.4k
3 个回答

在不考虑代码本身性能的情况下,影响爬虫速度的因素
1、网速,如果你的网速就很慢,就不用说了。
2、反爬虫机制,有的网站会分析用户行为,针对请求非常频繁的IP做一些限制处理,以减轻服务器压力。
3、硬件性能,这个很好理解了,简单的例子就是酷睿i3和i7的差距了,如果期间你还有读写操作,就跟硬盘读写速度也有关了。

看日志显示,时间损耗在日志统计这个扩展程序上,你可以尝试关闭logstats试试
在settings里面有个EXTENSIONS项来配置扩展程序

新手上路,请多包涵

scrapy并发任务池是你自己设置的大小(默认16),这16个任务如果没有执行完(如重试),哪怕剩一个,就在一直执行,知道结束,或者重试次数到了。才开始下个任务池的填充进行并发。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题