【问题标题】:How to implement a proxy pool into multiple scrapy crawlers?如何在多个scrapy爬虫中实现一个代理池?
【发布时间】:2019-03-19 14:26:07
【问题描述】:

我必须在有多个使用 scrapy 的爬虫的服务器中实现代理池。

鉴于我已经拥有一个包含多个代理且一直在更新的数据库,我将如何实现代理池。

我不想直接在代码中添加代理,主要是因为很多代理死得很快,而且有些爬虫需要很长时间才能完成。

有没有办法使用中间件或不需要更改我获得的每个爬虫的东西来实现这一点?

谢谢。

【问题讨论】:

    标签: python proxy scrapy web-crawler


    【解决方案1】:

    是的,您可以使用downloader middleware 实现这样的代理处理。

    Search Github for ‘scrapy proxy’ 查找一些处理代理配置的下载器中间件示例。

    【讨论】:

      【解决方案2】:

      中间件

      
      import requests
      PROXY_POOL_URL = 'http://127.0.0.1:5555/random'
      class RandomProxyMiddleware(object):
      
          def process_request(self, request, spider):
              proxy_ip = requests.get(PROXY_POOL_URL).text
      
              request.meta["proxy"] = 'http://' + proxy_ip    
      

      和设置

      DOWNLOADER_MIDDLEWARES = {
         'xxxxxxxxxxxxx.middlewares.RandomUserAgentMiddlware': 543,
      }
      

      【讨论】:

        猜你喜欢
        • 2016-11-09
        • 1970-01-01
        • 1970-01-01
        • 2019-06-24
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-14
        相关资源
        最近更新 更多