替代Scrap代理

Has*_*aza 1 python proxy scrapy

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

Has*_*aza 5

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

  1. 安装tor

    $ sudo apt-get install tor
    Run Code Online (Sandbox Code Playgroud)
  2. 安装polipo

    $ sudo apt-get install polipo
    Run Code Online (Sandbox Code Playgroud)
  3. 配置privoxy以使用Tor Socks代理。

    $sudo nano /etc/polipo/config
    Run Code Online (Sandbox Code Playgroud)

    在文件末尾添加以下行。

socksParentProxy =本地主机: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'])
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在项目设置中激活proxyMiddleware。

    DOWNLOADER_MIDDLEWARES = {
          'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
          'project_name.middlewares.ProxyMiddleware': 100
           }
    Run Code Online (Sandbox Code Playgroud)