scrapy的自动限速(AutoThrottle)扩展
该扩展能根据Scrapy服务器及您爬取的网站的负载自动限制爬取速度。
设计目标
- 更友好的对待网站,而不使用默认的下载延迟0。
- 自动调整scrapy来优化下载速度,使得用户不用调节下载延迟及并发请求数来找到优化的值。 用户只需指定允许的最大并发请求数,剩下的都交给扩展来完成。
扩展是如何实现的
在Scrapy中,下载延迟是通过计算建立TCP连接到接收到HTTP包头(header)之间的时间来测量的。
注意,由于Scrapy可能在忙着处理spider的回调函数或者无法下载,因此在合作的多任务环境下准确测量这些延迟是十分苦难的。 不过,这些延迟仍然是对Scrapy(甚至是服务器)繁忙程度的合理测量,而这扩展就是以此为前提进行编写的。
限速算法
算法根据以下规则调整下载延迟及并发数:
- spider永远以1并发请求数及 AUTOTHROTTLE_START_DELAY中指定的下载延迟启动。
- 当接收到回复时,下载延迟会调整到该回复的延迟与之前下载延迟之间的平均值。
来源:http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/autothrottle.html
scrapy的自动限速(AutoThrottle)扩展的更多相关文章
- 第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制
		第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用.自动限速.自定义spider的settings,对抗反爬机制 cookie禁用 就是在Scrapy的配置文件set ... 
- 二十八  Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制
		cookie禁用 就是在Scrapy的配置文件settings.py里禁用掉cookie禁用,可以防止被通过cookie禁用识别到是爬虫,注意,只适用于不需要登录的网页,cookie禁用后是无法登录的 ... 
- SpringBoot日记——SpringMvc自动配置与扩展篇
		为了让SpringBoot保持对SpringMVC的全面支持和扩展,而且还要维持SpringBoot不写xml配置的优势,我们需要添加一些简单的配置类即可实现: 通常我们使用的最多的注解是: @Bea ... 
- scrapy进阶-编写中间件和扩展
		中间件: 主要讨论的是下载中间件,明确一下顺序: download_middlewares --> server.url ---> spider_middleware 我主 ... 
- scrapy实现自动抓取51job并分别保存到redis,mongo和mysql数据库中
		项目简介 利用scrapy抓取51job上的python招聘信息,关键词为“python”,范围:全国 利用redis的set数据类型保存抓取过的url,现实避免重复抓取: 利用脚本实现每隔一段时间, ... 
- Scrapy+eChart自动爬取生成网络安全词云
		因为工作的原因,近期笔者开始持续关注一些安全咨询网站,一来是多了解业界安全咨询提升自身安全知识,二来也是需要从各类安全网站上收集漏洞情报. 作为安全情报领域的新手,面对大量的安全咨询,多少还是会感觉无 ... 
- Scrapy框架的八个扩展
		一.proxies代理 首先需要在环境变量中设置 from scrapy.contrib.downloadermiddleware.httpproxy import HttpProxyMiddlewa ... 
- SpringBoot中SpringMVC的自动配置以及扩展
		一.问题引入 我们在SSM中使用SpringMVC的时候,需要由我们自己写SpringMVC的配置文件,需要用到什么就要自己配什么,配置起来也特别的麻烦.我们使用SpringBoot的时候没有进行配置 ... 
- scrapy中自动补全url
		url = "https:" + url 或者url = response.urljoin(url) #这里代表的是自动补全url 
随机推荐
- hihoCoder-1093-SPFA
			SPFA的卓越之处就在于处理多点稀疏图,因为点太多的话,我们直接用矩阵来存图的话是存不下的. 所以当我们用邻接矩阵来存图的话,我们就可以用SPFA来解决这类问题,spfa就是优化版的bellman-f ... 
- 几种优化web页面加载速度的策略
			剥离静态资源请求到CDN 一般在主域名下的HTTP请求里都会携带大量Cookie信息,最大4KB,每个域名下最多50条:但如果仅仅访问js/css/jpeg等静态资源文件的话是不需要Cookie信息, ... 
- linux中添加一个用户到指定用户组的两种方式,修改一个用户到指定用户组的一种方式
			添加一个用户到指定用户组: gpasswd –a 用户名 组名usermod –G 组名 用户名 //第一种:gpasswd –a 用户名 组名 [root@localhost ~]# id user ... 
- CSS3-盒模型-resize属性
			作用:用来改变元素尺寸大小. 1.resize:none|both|horizontal|vertical|inherit none:不能拖动修改尺寸大小 both:可以拖动元素,修改元素宽高 hor ... 
- python 学习总结4
			数字类型及操作 一.整数类型 (1)python中的整数与数学中的概念是一致的,可以正也可以负,没有取值范围. pow(x,y)函数是计算x的y次幂,想计算多大就多大. (2)在整数类型中有四种进 ... 
- 基于链式链表的栈链式存储的C风格实现
			链式链表的头文件与CPP文件见前文 头文件: #ifndef _LINKSTACK_H_ #define _LINKSTACK_H_ typedef void LinkStack; //创建一个栈 L ... 
- PAT Basic 1034
			1034 有理数四则运算 本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数, ... 
- Java-改变Class
			改变一个Class对象的类型 package com.tj; public class MyClass2 { public static void main(String[] args) { Obje ... 
- div+css居中
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- Wp 导航到手机定位设置页面
			WP开放了很多选择器和启动器,找了半天没发现有打开定位设置页面的,找了好久终于找到了解决办法: await Windows.System.Launcher.LaunchUriAsync(new Uri ... 
