系统相关
首页 > 系统相关> > 在Python中设计多进程蜘蛛

在Python中设计多进程蜘蛛

作者:互联网

我正在使用Python开发多进程蜘蛛.它应该开始抓取一页链接并从那里开始工作.具体来说,顶层页面包含类别列表,这些类别中的第二层页面事件以及事件的最终第三层页面参与者.我无法预测会有多少个类别,事件或参与者.

我对如何最好地设计这样的蜘蛛(特别是如何知道它何时完成爬网)不知所措(希望它一直持续到发现并检索到每个相关页面为止).

理想情况下,第一个抓取将是同步的,而其他所有内容都不同步,以最大限度地提高并行解析和添加到数据库的速度,但是我仍然坚持如何确定爬网何时完成.

您如何建议我以并行过程尤其是上述问题来构造蜘蛛网?

解决方法:

我假设您将要访问的项目放在queue中,并用完了工作人员的队列,工作人员会找到要访问的新项目并将其添加到队列中.

当所有工作人员都闲着并且要访问的项目队列为空时,它完成了.

当工作人员利用队列的task_done()方法时,主线程可以阻止join()队列阻塞,直到队列为空.

标签:multithreading,python,web-crawler
来源: https://codeday.me/bug/20191210/2101468.html