Scrapy添加代理验证

简介: Scrapy添加代理验证

middlewares.py

from w3lib.http import basic_auth_header

class CustomProxyMiddleware(object):
    def process_request(self, request, spider):
        request.meta['proxy'] = "https://<PROXY_IP_OR_URL>:<PROXY_PORT>"
        request.headers['Proxy-Authorization'] = basic_auth_header(
            '<PROXY_USERNAME>', '<PROXY_PASSWORD>')

settings.py

DOWNLOADER_MIDDLEWARES = {

'<PROJECT_NAME>.middlewares.CustomProxyMiddleware': 350,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 400,
}

问题

1、如果代理验证设置不对,状态码会返回407

407 Proxy Authentication Required

刚开始采用以下格式配置,发现部分请求可以发送,不过会有一个重试,部分请求直接报错

request.meta['proxy'] = "https://&lt;PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_IP_OR_URL>:<PROXY_PORT>"

正确的设置是在请求头中设置 Proxy-Authorization


参考

  1. Using a custom proxy in a Scrapy spider
  2. Proxy-Authorization
            </div>
目录
相关文章
|
存储 SQL NoSQL
MongoDB 6.0 新特性概览
正如发布MongoDB 5.0时承诺的更快发布频率,年度大版本MongoDB 6.0也于2022年正式跟广大数据库爱好者们见面了。目前阿里云MongoDB已经完成了对6.0版本的适配工作,大家可以直接在官网控制台进行购买和尝鲜体验!
MongoDB 6.0 新特性概览
|
Java 应用服务中间件 网络安全
Tomcat配置ssl协议及遇到的问题https页面无法访问
Tomcat配置ssl协议及遇到的问题https页面无法访问
|
存储 自然语言处理 数据处理
PaddleNLP--UIE--小样本快速提升性能(含doccona标注
需求跨领域跨任务:领域之间知识迁移难度高,如通用领域知识很难迁移到垂类领域,垂类领域之间的知识很难相互迁移;存在实体、关系、事件等不同的信息抽取任务需求。 - 定制化程度高:针对实体、关系、事件等不同的信息抽取任务,需要开发不同的模型,开发成本和机器资源消耗都很大。 - 训练数据无或很少:部分领域数据稀缺,难以获取,且领域专业性使得数据标注门槛高。
PaddleNLP--UIE--小样本快速提升性能(含doccona标注
|
开发工具 git 缓存
Git忽略规则.gitignore不生效
在项目开发过程中个,一般都会添加 .gitignore 文件,规则很简单,但有时会发现,规则不生效。 原因是 .gitignore 只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
62369 5
|
缓存 Docker 容器
【docker hub镜像源失效】2024年6月6日 docker 国内镜像源失效
【docker hub镜像源失效】2024年6月6日 docker 国内镜像源失效
|
弹性计算 应用服务中间件
阿里云国外云服务器有哪些地域可选?如何选择?
1.轻量应用服务器的可选地域为:香港与新加坡; 2.其他云服务器ECS的可选地域为:日本(东京)、马来西亚(吉隆坡)、澳大利亚(悉尼)、中国(香港)、新加坡、印度(孟买)、美国(弗吉尼亚)、美国(硅谷)、印度尼西亚(雅加达);
|
SQL 数据挖掘 数据格式
Python数据分析(二):DataFrame基本操作
查看数据(查看对象的方法对于Series来说同样适用)
1582 0
|
Ubuntu 网络安全 数据安全/隐私保护
Ubuntu系统中生成SSH Key
Ubuntu系统中生成SSH Key
3887 0
|
消息中间件 人工智能 Cloud Native
2022云栖大会|技术人看过来!带你抢先“云游”D2馆开发者舞台!
最先进的前沿科技趋势就在2022云栖大会!锁定阿里云开发者社区打造的D2馆开发者舞台,行业大咖、阿里云技术专家、百万博主…与您共谈硬核技术热点,品味真实技术人生。11月3日至5日,云栖小镇,我们不见不散!
2503 4
|
存储 Java 编译器
Android | 使用 AspectJ 限制按钮快速点击
Android | 使用 AspectJ 限制按钮快速点击
456 1
Android | 使用 AspectJ 限制按钮快速点击