为了账号安全,请及时绑定邮箱和手机立即绑定

在 Raspberry Pi Zero 上,puppeteer 在超时后挂起

在 Raspberry Pi Zero 上,puppeteer 在超时后挂起

慕哥6287543 2022-07-21 22:18:56
我在让我的 Raspberry Pi Zero 运行时遇到了一些问题,puppeteer就像我在本教程中看到的那样。到目前为止,我已经做了类似的事情:$ sudo apt-get install chromium-browser chromium-codecs-ffmpeg --yes$ npm init -Y$ npm install puppeteer-core@1.11.0此外,尝试不将核心版本锁定到 1.11.0 - 结果相同。这是我的index.js:const puppeteer = require('puppeteer-core');(async () => {    try {        const browser = await puppeteer.launch({ executablePath: 'chromium-browser', headless: true, product: 'chrome' });        const page = await browser.newPage();        page.setDefaultNavigationTimeout(25 * 1000);        await page.goto('https://www.google.com/');        await page.screenshot({ path: 'screenshot.png' });        await browser.close();        console.log('screenshot taken');    } catch (e) {        console.log(e.message);    }})();而且,当我像这样运行它时,我得到超时错误:$ node index.jsNavigation Timeout Exceeded: 25000ms exceeded但是,它只是挂起。没有出口!任何帮助将不胜感激,谢谢。
查看完整描述

1 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

以下是一些可能对您有帮助的建议:

您需要确保您的 RPi 上有互联网连接,可以在 25 秒超时限制内为您服务,即page.setDefaultNavigationTimeout(25 * 1000);. 您可以使用ping命令来观察延迟,即ping google.com

我相信您有一个 RPi Zero 型号,具有 1GHz 单核处理器和 512 MB RAM,如此所述。因此,硬件和操作系统也将成为此处的影响因素,例如打开无头浏览器、拍摄快照、将其存储到文件中;所有这些操作都需要时间。您可以单独为这些操作计时,以便在粒度级别上更好地了解所花费的总时间。

我已经在一台机器(Core i5 - 8 核,8 GB RAM 和 Ubuntu 18.04 LTS)上对其进行了测试,大约需要 4 秒。在那个视频教程中,花了大约 9 秒。

因此,一个简单的解决方案是使用更长的超时值。

您可以做的另一件事是在本地 Apache 服务器上托管一个简单的静态网页,并使用其地址(例如http://localhost:8080/index.html)在没有互联网的情况下在本地测试它。在这种情况下,延迟会大大减少,您可以验证它是否适用于您的 RPi 零。在这种情况下,您可能也需要调整超时。您也可以使用 Python 的SimpleHTTPServer来代替 Apache 服务器。


查看完整回答
反对 回复 2022-07-21
  • 1 回答
  • 0 关注
  • 220 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号