我正在研究Python中的一个多进程蜘蛛。它应该开始抓取一个页面的链接,并从那里工作。具体而言,顶级页面包含类别列表,这些类别中的第二级页面事件以及事件中的最终第三级页面参与者。我无法预测将会有多少类别,活动或参与者。在Python中设计一个多进程蜘蛛
对于如何最好地设计这样一个蜘蛛,特别是如何知道它何时完成爬行(预计它将继续前进直到它发现并检索每个相关页面),我有点不知所措, 。
理想情况下,第一次刮会是同步的,其他所有异步最大化并行解析和添加到数据库,但我坚持如何确定何时完成抓取。
对于并行进程,特别是上面的问题,你会如何建议我构建蜘蛛?
嗯。我怎么知道队列是空的,因为一切都完成了,或者因为比工作进程更少的类别,即使这个队列还没有完成,它会清空队列? – wbg 2009-11-23 18:39:35
对不起,我发布的过快。我更多地考虑过你说的,multiprocessing.JoinableQueue.task_done()和.join()正是我正在寻找的。我只需要确保在调用task_done()之前将新任务添加到队列中。 谢谢! – wbg 2009-11-23 18:52:51