替代 scrapy 代理

Alternative to scrapy proxy

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

您可能需要 squid

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

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

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

  1. 安装工具

    $ 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. 在项目设置中激活 proxyMiddleware。

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