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>
目录
相关文章
|
数据安全/隐私保护
经典权限系统设计(五张表)
经典权限系统设计(五张表)
|
XML 存储 缓存
如何把业务代码越写越复杂? | MVP - MVVM - Clean Architecture
本文以一个真实项目的业务场景为载体,描述了经历一次次重构后,代码变得越来越复杂(you ya)的过程。
594 5
|
缓存 Java Linux
如何使用 Linux 后台运行 Python 脚本,并输出日志文件
如何使用 Linux 后台运行 Python 脚本,并输出日志文件
3835 0
|
存储 缓存 Linux
Linux之RAID介绍、软RAID5实操配置(失望攒够了就放手,不打扰是我最后的温柔)(一)
Linux之RAID介绍、软RAID5实操配置(失望攒够了就放手,不打扰是我最后的温柔)(一)
541 0
Linux之RAID介绍、软RAID5实操配置(失望攒够了就放手,不打扰是我最后的温柔)(一)
|
存储 缓存 运维
计算机基础入门、硬件和系统组成| 学习笔记
快速学习计算机基础入门、硬件和系统组成
524 0
计算机基础入门、硬件和系统组成| 学习笔记
利用微搭低代码实现附件的上传和下载
利用微搭低代码实现附件的上传和下载
利用微搭低代码实现附件的上传和下载
|
编解码
Google Earth Engine(GEE)——美国近地表高精度实时气象数据集(2500米分辨率)
Google Earth Engine(GEE)——美国近地表高精度实时气象数据集(2500米分辨率)
580 0
Google Earth Engine(GEE)——美国近地表高精度实时气象数据集(2500米分辨率)
|
C++
C++程序调试详解(包括打断点 单步调试 数据断点...)
C++程序调试详解(包括打断点 单步调试 数据断点...)
478 0
C++程序调试详解(包括打断点 单步调试 数据断点...)
|
消息中间件 分布式计算 监控
PostgreSQL11 CDC的分布式文件采集架构实战
PostgreSQL11 CDC的分布式文件采集架构实战
PostgreSQL11 CDC的分布式文件采集架构实战