10

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

为了使它更难,我还希望能够动态更改可用代理列表,降低一些,并添加其他代理。

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

谢谢 :)

4

3 回答 3

13

我已经使用 HAProxy + DeleGate + 多个 Tor 实例设置了轮换代理。使用 Tor,您无法很好地控制带宽和延迟,但它对于网络抓取很有用。我刚刚发表了一篇关于这个主题的文章:运行你自己的匿名轮换代理

于 2011-12-23T03:46:07.153 回答
6

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

或者并行打开多个连接,每个代理一个,然后将您的爬网请求分发到每个打开的连接。动态可以通过让连接器向请求调度程序注册自身来实现。

于 2009-12-19T21:30:18.793 回答
1

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

如果您不介意 Node,您可以使用代理列表来收集公共代理并使用check-proxy来检查它们。这正是https://gimmeproxy.com的工作原理,更多信息在这里

于 2017-08-15T19:09:14.937 回答