javascript - 错误 : EPERM: operation not permitted while running puppeteer JavaScript node

标签 javascript node.js puppeteer

我有一个脚本,它无限循环地抓取多个 URL,并通知我网站的任何更改。每次我让它运行一段时间,我回来发现它已经完成了循环的数十/数百次迭代,但我最终还是这个错误。

[Error: EPERM: operation not permitted, unlink 'C:\Users\user\AppData\Local\Temp\puppeteer_dev_chrome_profile-3thzgE\CrashpadMetrics-active.pma'] {
  errno: -4048,
  code: 'EPERM',
  syscall: 'unlink',
  path: 'C:\\Users\\user\\AppData\\Local\\Temp\\puppeteer_dev_chrome_profile-3thzgE\\CrashpadMetrics-active.pma'
}

此错误似乎不会发生在特定行上,因为如前所述,脚本在出现此错误之前已经完成了多次完整的循环迭代。

我在谷歌上搜索了这个错误,但似乎人们只是在使用 NPM 时才真正遇到过它,或者如果他们在使用 puppeteer 时确实遇到过它,那是在他们代码的特定行上。当我使用在线 .pma 阅读器阅读 .pma 文件时,这是我收到的消息:

 CrashpadMetrics UMA.PersistentAllocator.CrashpadMetrics.UsedPct UMA.PersistentAllocator.CrashpadMetrics.Errors Crashpad.HandlerLifetimeMilestone Stability.BrowserExitCodes

最佳答案

对我来说,这样做是

虽然这是令人讨厌的行为,但有一个解决方法:在关闭浏览器之前关闭所有页面

let pages = await browser.pages();等待 Promise.all(pages.map(page =>page.close())); await browser.close();

https://www.gitmemory.com/issue/puppeteer/puppeteer/6563/739149056

关于javascript - 错误 : EPERM: operation not permitted while running puppeteer JavaScript node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63319166/

相关文章:

node.js - NodeJS HTTP 请求队列

javascript - Box2d.js 与 Processing.js

javascript - 我的应用程序中的未知提供商

node.js - Puppeteer - PDF 生成的不同结果(本地 [windows] 与 live [centos])?

javascript - Puppeteer:打开一个页面,获取数据,返回上一页,进入新页面获取数据

sockets - 握手后立即发送 WebSocket 消息

javascript - 如何使用 Angular promise 作为字符串的一部分

javascript - PHP 中的 JQuery 已检查

javascript - 如何将命令行参数传递给嵌套脚本?

node.js - 动态注入(inject)脚本标签pre </body>