我想用puppeteer爬取搜索引擎某些关键词的搜索结果数量,一共有几千个关键词,如何才能控制住一次性打开的网页不要太多。。。
第一次玩puppeteer,写个for循环就把page扔进去了,发现一下子就开了4000个promise???
这种情况该怎么处理啊。。。。求助
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
搞个数组,每次做完一个在做另一个。或者说你可以让他最多同时执行5个,类似于连接池这种概念。
先申请连接,然后再去处理。处理完了取一个新的执行。有新任务就放入队列中,然后判断一下有空闲连接吗,有就执行,没有就在队列中等待。
然后这个数据是本地的嘛,重启就没了。你可以放在服务端,然后用接口操作咯。
不要把
browser.newPage()
放进循环里,page
应该是创建后复用,如果你每次创建一个page
,那就需要用完page
就应该关闭page.close()
,否则内存肯定要炸p-limit
之类的 npm 包可以很方便的实现控制异步并发,自己实现也不复杂。