【发布时间】:2022-01-30 15:40:34
【问题描述】:
我有一个 nodejs 脚本在我的 Macbook 24/7 上运行,每隔 20 分钟左右它就会运行 Puppeteer 来解析网站的内容。每隔两天,风扇就会变得非常响亮,我看到 Chromium 正在使用大量 CPU 和 RAM。有什么办法可以解决这个问题吗?
这是我正在运行的代码:
const options = {
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-accelerated-2d-canvas',
'--no-first-run',
'--no-zygote',
'--single-process',
'--disable-gpu'
],
headless: true
}
const browser = await puppeteer.launch(options);
const page = await browser.newPage();
await page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36')
await page.setViewport({ width: 1920, height: 1080 });
await page.setRequestInterception(true);
page.on('request', (req) => {
if(req.resourceType() === 'stylesheet' || req.resourceType() === 'font' || req.resourceType() === 'image'){
req.abort();
} else {
req.continue();
}
});
await page.goto(url, { waitUntil: 'networkidle0' });
// ... do stuff
await page.close();
await browser.close();
【问题讨论】:
-
(1) 这种“风扇声音很大”的现象只有在你的木偶表演日程发生时才会发生? (2) 如果您在同一台 Macbook 上使用 chrome 手动访问同一网站,是否会消耗相同的资源?老实说,我不知道“
// ... do stuff”部分会发生什么,但我认为 puppeteer 在正常情况下不会吃掉这么多资源,这对你的机器来说并不是最好的,特别是如果你正在运行它 24 /7 只因为这个任务。 在您的情况下,是否可以选择从 Github Actions、Heroku 等运行此作业?
标签: javascript node.js puppeteer chromium