Scrapy:如何编写HttpProxyMiddleware?
Scrapy:如何编写HttpProxyMiddleware?,scrapy,Scrapy,Scrapy的文档中关于HttpProxyMiddleware的描述如下: 该中间件通过为请求对象设置代理元值,设置用于请求的HTTP代理 与Python标准库模块urllib和urllib2一样,它遵循以下环境变量: http_proxy https_proxy no_proxy 您还可以将每个请求的元密钥代理设置为http://some_proxy_server:port或http://username:password@一些代理服务器:端口。请记住,此值将优先于http\u proxy/
Scrapy
的文档中关于HttpProxyMiddleware
的描述如下:
该中间件通过为请求
对象设置代理
元值,设置用于请求的HTTP代理
与Python标准库模块urllib
和urllib2
一样,它遵循以下环境变量:
http_proxy
https_proxy
no_proxy
您还可以将每个请求的元密钥代理设置为http://some_proxy_server:port
或http://username:password@一些代理服务器:端口
。请记住,此值将优先于http\u proxy/https\u proxy
环境变量,并且它还将忽略no\u proxy
环境变量
文件:
但文档中没有示例。
我不知道如何编写HttpProxyMiddleware
有什么建议吗?你不需要写建议HttpProxyMiddleware已存在于Scrapy中
正如docs所述,有两种方式可以让Scrapy知道您需要通过代理处理您的请求:
设置环境变量
(例如,从命令行)
您还可以将每个请求的元键“proxy”设置为类似或的值
请记住,此值将优先于http\u proxy/https\u proxy环境变量,并且它还将忽略no\u proxy环境变量
e、 g
你不需要写一个HttpProxyMiddleware已存在于Scrapy中
正如docs所述,有两种方式可以让Scrapy知道您需要通过代理处理您的请求:
设置环境变量
(例如,从命令行)
您还可以将每个请求的元键“proxy”设置为类似或的值
请记住,此值将优先于http\u proxy/https\u proxy环境变量,并且它还将忽略no\u proxy环境变量
e、 g
在settings.py中执行此操作
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 100
}
然后在产生每个请求时执行此操作
yield Request(meta={'proxy': "http://%s"%(random.choice(["IP:PORT", "IP:PORT"]))})
就这样 在settings.py中执行此操作
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 100
}
然后在产生每个请求时执行此操作
yield Request(meta={'proxy': "http://%s"%(random.choice(["IP:PORT", "IP:PORT"]))})
就这样 假设我已经有5个代理IP地址。我想设置一个IP地址池,我应该怎么做?假设我已经有5个代理IP地址。我想设置一个IP地址池,我应该怎么做?假设我已经有5个代理IP地址。我想设置一个IP地址池,我该怎么办?@zwl1619在您的Spider文件中创建IP列表,并在每个请求中使用随机代理IP…您能给我看一下代码吗?我不知道如何使它随机。我们在哪里产生这个请求,在哪个文件中?假设我已经有5个代理IP地址。我想设置一个IP地址池,我该怎么办?@zwl1619在您的Spider文件中创建IP列表,并在每个请求中使用随机代理IP…您能给我看一下代码吗?我不知道如何使它随机。我们在哪里产生这个请求,在哪个文件中?