如何在python的Scrapy代码中设置环境变量?

时间:2015-12-15 00:47:47

标签: python-2.7

我想使用代理连接使用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
}

但它没有用。给我一些解决方法。谢谢:))

1 个答案:

答案 0 :(得分:0)

也许有点晚了,但是其他人可能会使用这个主意。

添加“ scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware”意味着,使用默认的scrapy代理中间件。

要激活自己的中间件,应将其设置为:

'your_project_name.middlewares.ProxyMiddleWare':543

希望对您有帮助。