Python 用于刮纸的旋转代理
我有一个pythonweb爬虫,我想在许多不同的代理服务器之间分发下载请求,可能运行squid(尽管我对其他选择持开放态度)。例如,它可以以循环方式工作,其中request1转到proxy1,request2转到proxy2,并最终循环。你知道怎么设置吗 更难的是,我还希望能够动态更改可用代理的列表,减少一些代理,并添加其他代理 如果重要的话,IP地址是动态分配的Python 用于刮纸的旋转代理,python,proxy,screen-scraping,web-crawler,squid,Python,Proxy,Screen Scraping,Web Crawler,Squid,我有一个pythonweb爬虫,我想在许多不同的代理服务器之间分发下载请求,可能运行squid(尽管我对其他选择持开放态度)。例如,它可以以循环方式工作,其中request1转到proxy1,request2转到proxy2,并最终循环。你知道怎么设置吗 更难的是,我还希望能够动态更改可用代理的列表,减少一些代理,并添加其他代理 如果重要的话,IP地址是动态分配的 谢谢:)让您的爬虫程序有一个代理列表,并在每个HTTP请求中以循环方式使用列表中的下一个代理。但是,这将阻止您使用HTTP/1.1持
谢谢:)让您的爬虫程序有一个代理列表,并在每个HTTP请求中以循环方式使用列表中的下一个代理。但是,这将阻止您使用HTTP/1.1持久连接。修改代理列表最终将导致使用新代理或不使用代理
或者并行打开多个连接,每个代理一个连接,并将爬网请求分发给每个打开的连接。动态可以通过让connetor向请求调度器注册自己来实现。我已经使用HAProxy+DeleGate+多个Tor实例设置了旋转代理。使用Tor,您无法很好地控制带宽和延迟,但它对web抓取非常有用。我刚刚发表了一篇关于这个主题的文章:编辑:甚至还有gimmeproxy的Python包装器:
如果您不介意节点,可以使用来收集公共代理并检查它们。这正是它的工作原理,更多信息谢谢,给了我一些好主意,主要是使用redis集存储代理列表,使用srandmember命令获取代理。@Jacob你能分享你的示例代码或github repo吗?这很酷。不幸的是,越来越多的网站似乎禁止了与Tor出口节点相关的ip地址。@ChrisArmstrong是的。如果你想走这条路,就要考虑这个问题。