首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >木偶人爬行器大规模爬行

木偶人爬行器大规模爬行
EN

Stack Overflow用户
提问于 2020-12-05 00:15:05
回答 2查看 785关注 0票数 2

我们正在使用Puppeteer编写一个网络爬虫。我们写的木偶爬虫执行和爬行网站的网址没有问题的网页,如约1,500 - 5,000,但是,当我们执行的网站超过5,000,如果它在中间由于一些错误或崩溃而中断,那么它需要重新开始。如果出现任何错误,如何使基于Puppeteer的网络爬虫从爬行的最后状态恢复?在Puppeteer中有没有内置的函数?如何让这个木偶手无头的chrome web爬行通过一个队列系统?

EN

回答 2

Stack Overflow用户

发布于 2021-02-26 23:43:07

您可以将要抓取的页面的URL存储在某种队列中,例如使用AWS SQS。然后,您可以使用Node.js在不同的服务器或容器上运行多个Javascript进程。这些工作任务从公共队列中逐个获取链接,并在无头模式下使用Puppeteer爬行相应的页面。如果找到更多需要抓取的链接,那么也可以将它们添加到此队列中(当然,需要避免返回到已经抓取的页面的链接,因为它们会导致无限循环)。结果可以存储在不同的队列或数据库中。如果工作进程崩溃,可以使用常用的开源实用程序之一重新启动它,以管理和监视进程。最终,原始队列将为空,这表明所有页面都已被爬行。

票数 1
EN

Stack Overflow用户

发布于 2020-12-05 00:20:02

我自己用Puppeteer.js构建了爬虫来抓取谷歌和必应,我为此挣扎了很长一段时间。我强烈建议使用forever-monitor在每次浏览器崩溃或页面调用挂起时重新启动爬行器。其次,hilly建议在页面超过60秒没有响应时添加page.relaod (使用promise)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65146993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档