多线程爬虫用不同的代理为每个线程,正确的方法?

时间:2012-06-17 13:22:34

标签: python urllib2 web-crawler httplib2

我打算编写一个计划在大约10M页面上运行的多线程爬虫,为了加快速度,我需要同时获取大约10个不同的页面。

每个抓取线程将使用不同的代理并将结果推送到队列,另一方面我将有更多的工作人员从队列中获取结果,解析并插入到DB。

这是正确的方法吗?在队列中保存太多结果会有问题吗?我应该担心锁吗? (使用队列模块)。 哪个HTTP库最适合我的需求? (httplib2的/的urllib2)。

在创建每个线程时,我应该将请求对象的新实例传递给每个线程,还是应该移动请求对象并使用其" getPage"线程中的函数?

感谢。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

Scrapy是要走的路。

这是一个描述如何设置代理中间件以使用多个代理的页面:http://mahmoud.abdel-fattah.net/2012/04/16/using-scrapy-with-different-many-proxies/