替代scrapy代理

时间:2015-07-28 07:52:11

标签: python proxy scrapy

在scrapy中使用代理是否有其他选择。源站点已阻止我用于运行蜘蛛的服务器。我在项目中添加了ProxyMiddleware并随机化了代理。但问题是代理也被源站点阻止。我还将DOWNLOAD_DELAY设置为5,但问题仍然存在。除了转移到新服务器之外,还有其他方法可以在不使用代理的情况下访问该站点吗?

2 个答案:

答案 0 :(得分:4)

使用tor与privoxy解决了我的阻塞问题。

  1. 安装tor

    $ sudo apt-get install tor
  2. 安装polipo

    $ sudo apt-get install polipo
  3. 配置privoxy以使用tor socks proxy。

    $sudo nano /etc/polipo/config

    在文件末尾添加以下行。

  4.   

    socksParentProxy = localhost:9050

         

    diskCacheRoot =""

         

    disableLocalInterface =""

    1. 在middlewares.py中添加代理中间件。

      class ProxyMiddleware(object):
          def process_request(self, request, spider):
              request.meta['proxy'] = 'http://localhost:8123'
              spider.log('Proxy : %s' % request.meta['proxy'])
      
    2. 在项目设置中激活proxyMiddleware。

      DOWNLOADER_MIDDLEWARES = {
            'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
            'project_name.middlewares.ProxyMiddleware': 100
             }

答案 1 :(得分:0)

您可能需要squid

它将屏蔽故障代理,更快地使用代理,自动轮换,自动重试转发以及设置规则。

只需将蜘蛛设置为同一个导出代理。