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>
目录
相关文章
|
安全 Unix Shell
渗透测试快速启动指南(全)(5)
渗透测试快速启动指南(全)
195 0
|
SQL 监控 NoSQL
OpenSource - 一站式API服务
OpenSource - 一站式API服务
287 0
|
10月前
|
人工智能 安全 IDE
一天成为Java开发高手:用飞算JavaAI实现十倍提效
“一天成为Java开发高手”曾被视为天方夜谭,但飞算JavaAI的出现改变了这一局面。这款AI开发助手通过智能引导、需求分析、自动化逻辑处理和完整代码工程生成,大幅简化了Java开发流程。它不仅帮助新手快速上手,还让资深开发者提高效率,减少调试时间。现在,参与“飞算JavaAI炫技赛”,展示你的开发实力,赢取丰厚奖品!
|
JSON Java 数据格式
SpringBoot入门(七)
SpringBoot入门(七)
|
存储 缓存 关系型数据库
MYSQL的覆盖索引和回表
MYSQL的覆盖索引和回表
322 0
|
SQL
day01_springboot综合案例(二)
day01_springboot综合案例
138 0
|
设计模式 缓存 Java
logback之 FileAppender 的原理及避坑建议
buffer 机制 通俗来说就是化零为整,把少量多次变成多量少次;具体来说就是进行流量整形,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的 I/O,以减少响应次数
1154 0
logback之 FileAppender 的原理及避坑建议
|
调度
R问题|如何查看函数的源代码
R问题|如何查看函数的源代码
434 0
|
存储 缓存 安全
Python 日志logging模块初探及多线程踩坑(1)
Python 日志logging模块初探及多线程踩坑(1)
1046 0
Python 日志logging模块初探及多线程踩坑(1)
|
数据库
并发事务带来哪些问题?
并发事务带来哪些问题?
303 0