爬虫如何确定什么时候停止

想问一下,写一个爬虫,如何判断该爬虫什么时候应该停止呢?
初始状态为一个url;然后有一个

while(isNotEmpty(urlList)){
    // do something
}

我的思路是这样,但是会有放入队列url 的速度跟不上消费的速度,以至于出现了urlList为空的情况,这时候爬虫就停掉了。我想问下,有哪位大牛自己写过爬虫的框架,是根据什么条件决定爬虫停止运行的。

阅读 4.3k
3 个回答

思路有点奇怪,urlList的链接也是自己放进去吧,放一个爬一个不就行了。什么时候不往urlList放链接爬虫就停了。

视要爬取的具体情况来定:

(1)情况一:对指定网站,全量爬取完之后,爬虫的全量爬取停止,之后都用定时任务爬取增量数据
(2)情况二:使用Kafka或其他消息队列,只要监听到有爬取的topic,就执行爬取,否则就一直处于待命状态
新手上路,请多包涵

爬虫怎么停止,不是取决于你自己的业务的吗。
爬虫只要做好去重就好了。
爬虫如果可控, 用单进程取代多线程。通过杀死进程的方法。控制爬虫程序。
screen 部署爬虫项目。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进