python接入讯代理_scrapy中使用讯代理动态转发
scrapy源代码中查找http11.py文件,相对路径为:
Lib/site-packages/scrapy/core/downloader/handlers/http11.py
找到下面内容,注释掉:
if isinstance(agent, self._TunnelingAgent):
headers.removeHeader(b'Proxy-Authorization')
否则proxy-authorization会被去除,动态转发失效。
自定义下载中间件:
class ProxyIPMiddleware(object):
'''
随机更换代理ip
'''
def __init__(self):
self.orderno = "xxxxxxxxxxxx" # 订单号
self.secret = "xxxxxxxxxxx" # 秘钥
def process_request(self,request,spider):
print('====ProxyIPMiddleware====')
protocal = request.url.split(':')[0].strip().lower()
print(request.url,'protocal:',protocal)
ip = "forward.xdaili.cn" # 代理ip
port = "80" # 端口号
ip_port = ip + ":" + port
proxy = {"http": "http://" + ip_port, "https": "https://" + ip_port}
timestamp = str(int(time.time())) # 时间戳
string = "orderno=" + self.orderno + "," + "secret=" + self.secret + "," + "timestamp=" + timestamp
md5_string = hashlib.md5(string.encode()).hexdigest() # md5哈希,得到固定长度的字符串
sign = md5_string.upper() # 转换成大写字母
# 认证信息
auth = "sign=" + sign + "&" + "orderno=" + self.orderno + "&" + "timestamp=" + timestamp
print('auth:',auth)
request.headers['Proxy-Authorization'] = auth
#HTTP代理,只代理HTTP网站,HTTPS代理,只代理HTTPS网站
request.meta['proxy'] = proxy[protocal]
原文链接:https://blog.csdn.net/Kwoky/article/details/105417716
python接入讯代理_scrapy中使用讯代理动态转发相关推荐
- python设置http代理_python中设置HTTP代理的方法
什么是HTTP代理 HTTP代理本质上是一个Web应用,它和其他普通Web应用没有根本区别.HTTP代理收到请求后,根据Header中Host字段的主机名和Get/POST请求地址综合判断目标主机,建 ...
- 带你了解代理模式中的静态代理和动态代理以及cgilib代理^_^
代理模式 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能. 这种类型的设计模式属于结构型模式. 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口. 这样的意图是: ...
- python接入excel_在abaqus中使用python连接excel
局部坐标系建立及局部坐标系下读取坐标 1.局部坐标系建立: Abaqus中提供了两种方法:1.transform 2.orientation 1. transform REQUIRED PARAMET ...
- 代理模式中的静态代理
举个例子:人到了适婚年龄,父母总是迫不及待希望早点抱孙子.而现在社会的人在各种压力之下,都选择晚婚晚育.于是着急的父母就开始到处为自己的子女相亲,比子女自己还着急.这个相亲的过程,就是一种我们人人都有 ...
- 一篇文章让你搞懂Java中的静态代理和动态代理
文章目录 什么是代理模式 代理的优缺点 静态代理 动态代理 InvocationHandler 接口 和 invoke 方法介绍 静态代理和动态代理的区别 什么是代理模式 代理模式是常用的java设计 ...
- java中设置网络代理
代理服务器概述 许多系统通过代理服务器访问Web,有时还会访问Internet的其它非HTTP部分.代理服务器接收到本地客户端到远程服务器的请求.代理服务器向远程服务器发出请求,再将结果转发回本地客户 ...
- Java JDK代理、CGLIB、AspectJ代理分析比较
前言 什么是代理,在Design patterns In java这个本书中是这样描述的,简单的说就是为某个对象提供一个代理,以控制对这个对象的访问.在不修改源代码的基础上做方法增强,代理是一种设计模 ...
- python接入讯代理_scrapy添加讯代理 动态转发(Python3)
1. 先行条件 将scrapy源代码,相对路径为:Lib/site-packages/scrapy/core/downloader/handlers/http11.py的文件中, if isinsta ...
- Python HTTP代理的优缺点?芝麻代理豌豆代理熊猫代理讯代理?
目前市场厂商提供的HTTP代理产品和服务差不多,使用下来还是有各自的优缺点,品质也是值得讨论的.如果不想和当大冤种,还是要仔细挑选厂商,不要被广告给迷惑了. 那咱们到底该怎么选?商家的可靠程度如何?我 ...
最新文章
- 【SQL】数据库的SQL查询,涉及多个数据库
- shell 实例收集
- sha256---利用java自带的实现加密
- 微型计算机中最小的单位,微型计算机中最小的数据单位是
- 卷积神经网络_mnist
- 连接主机Java网络编程(一)- 一个简单的服务端/客户端应用程序
- win7怎么把计算机放到桌面6,手机投屏到电脑win7最简单具体操作步骤
- 在.cpp文件中调用.c文件中的函数
- 记忆力:魔方基础教程
- PPT转换成图片及合成长图
- 系统重装之后如何恢复mysql数据
- 模态框获取页面请求数据
- 使用transition实现图片轮播效果
- 雷迪9000使用说明_标准版DM雷迪操作及维护手册 精品
- linux使用windows无线网卡,linux下安装windows xp无线网卡驱动
- 游戏开发-国外的10 个最佳的独立游戏开发社区网站
- 趣谈唯一邀请码生成方法
- AI上推荐 之 AFM与DIN模型(当推荐系统遇上了注意力机制)
- Windows访问共享文件 smb samba
- 最合理化的中小型企业桌面虚拟化解决方案—Infortrend GSe Pro 100