在Python中分发Web爬网程序

时间:2015-11-06 18:09:12

标签: python web-crawler distributed-computing

我是一名Python学习者,我一直在深入研究这篇文章:

"A Web Crawler With asyncio Coroutines" by A. Jesse Jiryu Davis and Guido van Rossum

我不明白的一件事是我如何在几台计算机的集群上发展这个程序。这是asyncio库的一部分还是你自己的#34;对于分发的作品?

1 个答案:

答案 0 :(得分:2)

一种可能性是使用外部任务队列。有许多可供选择,Celery是一个受欢迎的。基本思想是将作业推送到队列中,任何数量的工作进程都可以使用它们。对于Web爬网程序,作业可以像抓取的URL一样简单。工作人员将从队列中获取URL,检索它,解析它,并将任何新URL作为新作业添加到队列中。

这个系统的优势在于,工作人员只是流程,可以通过网络与队列进行通信,因此您可以在任意数量的计算机上拥有尽可能多的工作人员。