码迷,mamicode.com
首页 > 其他好文 > 详细

scrapy的自动限速(AutoThrottle)扩展

时间:2018-05-12 00:00:16      阅读:525      评论:0      收藏:0      [点我收藏+]

标签:intern   art   start   cut   十分   根据   algo   多任务   pre   

该扩展能根据Scrapy服务器及您爬取的网站的负载自动限制爬取速度。

设计目标

  1. 更友好的对待网站,而不使用默认的下载延迟0。
  2. 自动调整scrapy来优化下载速度,使得用户不用调节下载延迟及并发请求数来找到优化的值。 用户只需指定允许的最大并发请求数,剩下的都交给扩展来完成。

扩展是如何实现的

在Scrapy中,下载延迟是通过计算建立TCP连接到接收到HTTP包头(header)之间的时间来测量的。

注意,由于Scrapy可能在忙着处理spider的回调函数或者无法下载,因此在合作的多任务环境下准确测量这些延迟是十分苦难的。 不过,这些延迟仍然是对Scrapy(甚至是服务器)繁忙程度的合理测量,而这扩展就是以此为前提进行编写的。

限速算法

算法根据以下规则调整下载延迟及并发数:

  1. spider永远以1并发请求数及 AUTOTHROTTLE_START_DELAY 中指定的下载延迟启动。
  2. 当接收到回复时,下载延迟会调整到该回复的延迟与之前下载延迟之间的平均值。
 

来源:http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/autothrottle.html

scrapy的自动限速(AutoThrottle)扩展

标签:intern   art   start   cut   十分   根据   algo   多任务   pre   

原文地址:https://www.cnblogs.com/shengulong/p/9026172.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!