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>
目录
相关文章
|
数据安全/隐私保护
经典权限系统设计(五张表)
经典权限系统设计(五张表)
|
机器学习/深度学习 人工智能 数据可视化
ShuffleNet:极致轻量化卷积神经网络(分组卷积+通道重排)
我们引入了一个高效计算的CNN结构名字叫做shuffleNet,这个结构被设计用来解决部署算力非常有限的移动设备问题,这个新的结构使用了两个新的操作,pointwise group convolution 和 channel shuffle能够在极大减少计算量的同时保持一定的精度。我们在ImageNet classification和MS COCO目标检测数据集上做实验论证了ShuffleNet和其他的结构相比有着很好的性能。比如,相比于mobilenet,shufflenet在ImageNet 分类任务上有着更低的top-1错误率(错误率是7.8%)需要的计算量为40MFLOPs。在一个AR
3690 0
ShuffleNet:极致轻量化卷积神经网络(分组卷积+通道重排)
|
缓存 Java Linux
如何使用 Linux 后台运行 Python 脚本,并输出日志文件
如何使用 Linux 后台运行 Python 脚本,并输出日志文件
4064 0
|
存储 缓存 Linux
Linux之RAID介绍、软RAID5实操配置(失望攒够了就放手,不打扰是我最后的温柔)(一)
Linux之RAID介绍、软RAID5实操配置(失望攒够了就放手,不打扰是我最后的温柔)(一)
665 0
Linux之RAID介绍、软RAID5实操配置(失望攒够了就放手,不打扰是我最后的温柔)(一)
|
机器学习/深度学习 人工智能 并行计算
Pytorch 基于NiN的服饰识别(使用Fashion-MNIST数据集)
Pytorch 基于NiN的服饰识别(使用Fashion-MNIST数据集)
401 0
Pytorch 基于NiN的服饰识别(使用Fashion-MNIST数据集)
|
存储 缓存 运维
计算机基础入门、硬件和系统组成| 学习笔记
快速学习计算机基础入门、硬件和系统组成
637 0
计算机基础入门、硬件和系统组成| 学习笔记
利用微搭低代码实现附件的上传和下载
利用微搭低代码实现附件的上传和下载
利用微搭低代码实现附件的上传和下载
|
关系型数据库 MySQL 数据库
MySQL函数之cast()简介
MySQL函数之cast()简介
2842 0
MySQL函数之cast()简介
|
编解码
Google Earth Engine(GEE)——美国近地表高精度实时气象数据集(2500米分辨率)
Google Earth Engine(GEE)——美国近地表高精度实时气象数据集(2500米分辨率)
641 0
Google Earth Engine(GEE)——美国近地表高精度实时气象数据集(2500米分辨率)