我打算编写一个计划在大约10M页面上运行的多线程爬虫,为了加快速度,我需要同时获取大约10个不同的页面。
每个抓取线程将使用不同的代理并将结果推送到队列,另一方面我将有更多的工作人员从队列中获取结果,解析并插入到DB。
这是正确的方法吗?在队列中保存太多结果会有问题吗?我应该担心锁吗? (使用队列模块)。 哪个HTTP库最适合我的需求? (httplib2的/的urllib2)。
在创建每个线程时,我应该将请求对象的新实例传递给每个线程,还是应该移动请求对象并使用其" getPage"线程中的函数?
感谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
Scrapy是要走的路。
这是一个描述如何设置代理中间件以使用多个代理的页面:http://mahmoud.abdel-fattah.net/2012/04/16/using-scrapy-with-different-many-proxies/