首页 > 其他分享 >scrapy 如何使用代理 以及设置超时时间

scrapy 如何使用代理 以及设置超时时间

时间:2022-10-19 10:25:52浏览次数:57  
标签:http AUTOTHROTTLE 代理 DELAY scrapy 设置 DOWNLOAD 超时

使用代理

1. 单文件spider局部使用代理

entry = 'http://xxxxx:[email protected]:xxx'.format("帐号", "密码","端口号")
# entry = 'http://{}'.format("api获取的ip代理")
# 传参meta迭代下一个方法
for url in self.starturl:
    yield scrapy.Request(url,meta={"proxy":entry})

中间件添加代理

首先在中间件middlewares.py中,在最后加入如下代码:

class ProxyMiddleware:
    def process_request(self,request,spider):
        entry = 'http://xxxxx:[email protected]:xxx'.format("帐号", "密码","端口号")
        request.meta["proxy"] = entry

**可通过 **
if spider.name== "" 的方式控制单文件使用代理

然后在setting.py中设置优先级:

DOWNLOADER_MIDDLEWARES = {
   '你的项目名.middlewares.ProxyMiddleware': 100, # 100 代表优先级
}

设置超时时间

设置单个请求设置超时时间

meta = {'download_timeout':30}

设置整个文件超时时间

custom_settings = {
        'DOWNLOAD_TIMEOUT': 60,
}

全局设置超时时间

DOWNLOAD_TIMEOUT = 60

Scrapy设置下载延时和自动限速(配合代理使用)

单个请求

custom_settings = {
    'DOWNLOAD_DELAY': 0.3,
    'AUTOTHROTTLE_ENABLED': True
}

全局设置


#延时2秒,不能动态改变,时间间隔固定,容易被发现,导致ip被封
DOWNLOAD_DELAY=2

# RANDOMIZE_DOWNLOAD_DELAY 在settings.py文件中设置
# 启用后,当从相同的网站获取数据时,Scrapy将会等待一个随机的值,延迟时间为0.5到1.5之间的一个随机值乘以DOWNLOAD_DELAY
RANDOMIZE_DOWNLOAD_DELAY=True

# 自动限速扩展 在settings.py中配置

AUTOTHROTTLE_ENABLED #默认为False,设置为True可以启用该扩展
AUTOTHROTTLE_START_DELAY #初始下载延迟,单位为秒,默认为5.0
AUTOTHROTTLE_MAX_DELAY #设置在高延迟情况下的下载延迟,单位为秒,默认为60
AUTOTHROTTLE_DEBUG #用于启动Debug模式,默认为False
CONCURRENT_REQUESTS_PER_DOMAIN #对单个网站进行并发请求的最大值,默认为8
CONCURENT_REQUESTS_PER_IP #对单个IP进行并发请求的最大值,如果非0,则忽略CONCURRENT_REQUESTS_PER_DOMAIN设定,使用该IP限制

标签:http,AUTOTHROTTLE,代理,DELAY,scrapy,设置,DOWNLOAD,超时
From: https://www.cnblogs.com/zichliang/p/16805290.html

相关文章

  • 设计模式 - 动态代理
    设计模式-动态代理什么是代理代购、中介、商家举个栗子:比如有一家美国大学,面向全世界招生,而我们国内的同学,需要去到某个大学。因为我们所处国内,并不知道这个大学......
  • SSH-agent如何通过代理进行服务器连接
    openssh是什么这里不做解释,但凡是用过linux系统的一般都是会了解这个的,毕竟openssh都是系统自带的应用。openssh一般都是指linux上的客户端,很多linux系统自有客户端的ssh......
  • STTH60RQ06-Y英飞凌MOS管、原装现货ASEMI代理
    编辑:llSTTH60RQ06-Y英飞凌MOS管、原装现货ASEMI代理型号:ISL9R3060G2品牌:ASEMI封装:TO-247-2L最大漏源电流:60A漏源击穿电压:600VRDS(ON)Max:0.08Ω引脚数量:2特性:车规级M......
  • NGINX反向代理与负载均衡
    NGINX反向代理与负载均衡目录nginx反向代理与负载均衡nginx负载均衡调度器高可用配置安装服务部分部署web页面实现nginx复制均衡部署keepalived高可用编写脚本......
  • STTH1506DPI意法车规MOS管\原装现货\ASEMI代理
    编辑:llSTTH1506DPI意法车规MOS管\原装现货\ASEMI代理型号:STTH1506DPI品牌:ASEMI封装:TO-3P-2L最大漏源电流:15A漏源击穿电压:600VRDS(ON)Max:0.24Ω引脚数量:2沟道类型:N沟......
  • STTH1506DPI意法车规MOS管\原装现货\ASEMI代理
    编辑:llSTTH1506DPI意法车规MOS管\原装现货\ASEMI代理型号:STTH1506DPI品牌:ASEMI封装:TO-3P-2L最大漏源电流:15A漏源击穿电压:600VRDS(ON)Max:0.24Ω引脚数量:2沟道类型:N沟道MOS管芯......
  • 「http代理」Python-Scrapy 代码样例(四)
    http代理使用提示1.http/https网页均可适用2.scrapy不是python原生库,需要安装才能使用:pipinstallscrapy3.在第一级tutorial目录下运行如下命令查看......
  • 「http代理」Python-Scrapy 代码样例(三)
    http代理使用提示1.http/https网页均可适用2.scrapy不是python原生库,需要安装才能使用:pipinstallscrapy3.在第一级tutorial目录下运行如下命令查看......
  • 阿里云CLB代理https转发到harbor
    阿里云CLB代理https转发到harbor背景原来的harbor仓库和业务应用在同一台机器上,且没有域名。现在需要迁移到一台单独机器上并配置域名。迁移harbor#原来的harbor在启......
  • Java JDK 动态代理(AOP)使用及实现原理分析
    目录​​一、什么是代理?​​​​二、Java动态代理类 ​​​​三、JDK的动态代理怎么使用?​​​​四、动态代理怎么实现的?​​​​五、结论​​一、什么是代理?代理是一种常......