Skip to main content
 首页 » 编程设计

python之替代 scrapy 代理

2025年05月04日34傻小

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

请您参考如下方法:

使用 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 
           }