我想使用代理连接使用scrapy,并希望同时使用http和https here。最简单的方法是设置环境变量http_proxy和https_proxy。但是如果我设置变量,我使用我的公司系统会有一些冲突。 Instread我想把这些设置放到python代码中。
所以,我使用HttpProxyMiddleWare Scrapy提供并编写了一些如下代码。
import base64
class ProxyMiddleWare(object):
def process_reqeust(self, reqeust, spider):
http_proxy = "http://70.10.15.12:8080"
https_proxy = "https://70.10.15.12:8080"
proxyDict = {
"http" : http_proxy,
"https" : https_proxy
}
reqeust.meta['proxies'] = proxyDict
我在setting.py中添加了HttpProxyMiddleWare,如下所示。
# Enable or disable downloader middlewares
# See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
DOWNLOADER_MIDDLEWARES = {
# 'test.middlewares.MyCustomDownloaderMiddleware': 543,
#'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware' : 1,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware' : 543
}
但它没有用。给我一些解决方法。谢谢:))
答案 0 :(得分:0)
也许有点晚了,但是其他人可能会使用这个主意。
添加“ scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware”意味着,使用默认的scrapy代理中间件。
要激活自己的中间件,应将其设置为:
'your_project_name.middlewares.ProxyMiddleWare':543
希望对您有帮助。