我将编写一个计划在大约 10M 页面上运行的多线程爬虫,为了加快速度,我需要同时获取大约 10~ 个不同的页面。
每个爬虫线程将使用不同的代理并将结果推送到队列,另一方面,我将有更多的工作人员从队列中获取结果,解析并将它们插入数据库。
这是正确的方法吗?在队列中保存太多结果会不会有问题?我应该担心锁吗?(使用队列模块)。哪个 HTTP 库最适合我的需求?(httplib2/urllib2)。
创建每个线程时,我应该将请求对象的新实例传递给每个线程,还是应该移动请求对象并在线程中使用其“getPage”函数?
谢谢。