【问题标题】:Alternative to scrapy proxy替代scrapy代理
【发布时间】:2015-07-28 07:52:11
【问题描述】:

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

【问题讨论】:

    标签: python proxy scrapy


    【解决方案1】:

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

    1. 安装tor

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

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

      $sudo nano /etc/polipo/config

      在文件末尾添加以下行。

    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. 在项目设置中激活代理中间件。

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

    【讨论】:

      【解决方案2】:

      您可能想要squid

      会屏蔽失效代理,使用代理更快,自动轮换,自动重试转发,设置规则。

      只需将您的蜘蛛设置为相同的导出代理即可。

      【讨论】:

      • squid 是不错的选择,除非网站不经常更新。就我而言,网站每天都会更新。
      猜你喜欢
      • 2011-06-10
      • 2017-01-18
      • 2011-08-20
      • 2022-01-16
      • 1970-01-01
      • 2015-01-30
      • 2012-06-28
      • 2013-10-27
      • 2021-11-14
      相关资源
      最近更新 更多