二十一:scrapy中设置下载延时与自动限速
Posted nuochengze
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二十一:scrapy中设置下载延时与自动限速相关的知识,希望对你有一定的参考价值。
1、DOWNLOAD_DELAY
在settings中设置 DOWNLOAD_DELAY=2 #延时2秒,不能动态改变,导致访问延时都差不多,也容易被发现
2、RANDOMIZE_DOWNLOAD_DELAY
在settings中设置 RANDOMIZE_DOWNLOAD_DELAY=True # 启用后,当从相同的网站获取数据时,Scrapy将会等待一个随机的值,延迟时间为0.5到1.5之间的一个随机值乘以DOWNLOAD_DELAY
3、通过自动限速扩展
自动限速扩展能够根据Scrapy服务器及爬取的网站的负载自动限制爬取速度。
原理:在scrapy中,下载延迟是通过计算建立TCP连接到接收到HTTP包头(header)之间的时间来测量的。
使用的限速算法根据规则调整下载延迟及并发数:
(1)spider永远以1并发请求数及AUTOTHROTTLE_START_DELAY中指定的下载延迟启动
(2)当接收到回复时,下载延迟会调整到该回复的延迟与之间下载延迟之间的平均值
通过配置settings中的字段来开启自动限速扩展:
(1)AUTOTHROTTLE_ENABLED:默认为False,设置为True可以启用该扩展
(2)AUTOTHROTTLE_START_DELAY:初始下载延迟,单位为秒,默认为5.0
(3)AUTOTHROTTLE_MAX_DELAY:设置在高延迟情况下的下载延迟,单位为秒,默认为60
(4)AUTOTHROTTLE_DEBUG:用于启动Debug模式,默认为False
(5)CONCURRENT_REQUESTS_PER_DOMAIN:对单个网站进行并发请求的最大值,默认为8
(6)CONCURENT_REQUESTS_PER_IP:对单个IP进行并发请求的最大值,如果非0,则忽略CONCURRENT_REQUESTS_PER_DOMAIN设定,使用该IP限制设定。
以上是关于二十一:scrapy中设置下载延时与自动限速的主要内容,如果未能解决你的问题,请参考以下文章
Python爬虫从入门到放弃(二十一)之 Scrapy分布式部署
Python爬虫(二十一)_Selenium与PhantomJS
C语言试题二十一之定义n×n的二维数组编写函数 fun(int a[][n])功能是:使数组左下半三角元素中的值全部置成0。
C语言试题二十一之定义n×n的二维数组编写函数 function(int a[][n])功能是:使数组左下半三角元素中的值全部置成0。