我正在使用Python开发多进程蜘蛛.它应该开始抓取一页链接并从那里开始工作.具体来说,顶层页面包含类别列表,这些类别中的第二层页面事件以及事件的最终第三层页面参与者.我无法预测会有多少个类别,事件或参与者.
我对如何最好地设计这样的蜘蛛(特别是如何知道它何时完成爬网)不知所措(希望它一直持续到发现并检索到每个相关页面为止).
理想情况下,第一个抓取将是同步的,而其他所有内容都不同步,以最大限度地提高并行解析和添加到数据库的速度,但是我仍然坚持如何确定爬网何时完成.
您如何建议我以并行过程尤其是上述问题来构造蜘蛛网?
解决方法:
我假设您将要访问的项目放在queue中,并用完了工作人员的队列,工作人员会找到要访问的新项目并将其添加到队列中.
当所有工作人员都闲着并且要访问的项目队列为空时,它完成了.
当工作人员利用队列的task_done()方法时,主线程可以阻止join()队列阻塞,直到队列为空.