繁体   English   中英

Memory 关于使用 Apify Puppeteer 爬行的问题

[英]Memory issue on using Apify Puppeteer crawling

我一直在研究 Python 项目,用户向程序提供一长串 URL(比如说 100 个 URL),程序将产生 100 个进程来执行包含爬虫代码的 JavaScript 代码(使用Apify.launchPuppeteer() )。 此外,JavaScript 代码是基于 Apify Puppeteer 单页模板创建和修改的。

但是,100个进程同时调用爬取代码会消耗大量的memory,导致卡顿。 由于 Python 代码正在等待从 JavaScript 代码写入的文件中读取结果,因此 memory 代码不足会极大地影响性能并引发文件写入错误。 我想知道有什么方法可以优化 JavaScript 爬虫代码,或者是否有任何改进可以在双方进行?

一些编辑 --- 关于程序的额外信息:用户正在给出一个 URL(域)列表,并且程序想要递归地爬取域中的所有链接(例如,爬取域 github.com 中的所有超链接)。

完全没有必要启动 100 个单独的爬取进程。 Apify 提供了爬虫类,它们可以抓取一个列表或一个充满 URL 的队列。 它们还管理并发,因此运行保持在 CPU 和 memory 限制内。 我们通常会抓取数百万个 URL,而不会出现明显的 memory 或 CPU 问题。 我会使用PuppeteerCrawler

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM