代码之家  ›  专栏  ›  技术社区  ›  Jacob

用于刮网的旋转代理

  •  10
  • Jacob  · 技术社区  · 15 年前

    我有一个python web爬虫,我想在许多不同的代理服务器之间分发下载请求,可能运行squid(尽管我对其他选择持开放态度)。例如,它可以以循环方式工作,其中request1转到proxy1,request2转到proxy2,最后循环回来。知道怎么设置吗?

    为了更难,我还希望能够动态地更改可用代理的列表,减少一些,并添加其他代理。

    如果重要的话,IP地址是动态分配的。

    谢谢)

    3 回复  |  直到 6 年前
        1
  •  6
  •   Bernd    15 年前

    使你的爬虫程序有一个代理列表,并且在每个http请求中让它以循环方式使用列表中的下一个代理。但是,这将阻止您使用http/1.1持久连接。修改代理列表最终将导致使用新代理或不使用代理。

    或者并行打开多个连接,每个代理一个,并将爬网请求分发到每个打开的连接。动态性可以通过让connetor向请求分派器注册自己来实现。

        2
  •  14
  •   sw.    13 年前

    我使用haproxy+delegate+multiple-tor实例设置了旋转代理。使用ToR,您无法很好地控制带宽和延迟,但它对Web抓取很有用。我刚刚发表了一篇关于这个问题的文章: Running Your Own Anonymous Rotating Proxies

        3
  •  1
  •   Andrey E    6 年前

    编辑:甚至还有用于gimmeproxy的python包装器: https://github.com/ericfourrier/gimmeproxy-api

    如果你不介意node,你可以使用 proxy-lists 收集公众代理人 check-proxy 去检查他们。就是这样 https://gimmeproxy.com 工作,更多信息 here