【问题标题】:Running Puppeteer with headless: false & Firebase Functions无头运行 Puppeteer: false 和 Firebase 函数
【发布时间】:2022-02-15 18:02:49
【问题描述】:

我正在尝试使用 Puppeteer + Firebase 函数,同时使用 headless: false 选项

await puppeteer.launch({
        headless: false
    });

它在本地运行良好。我使用 headless: false 所以它不会触发机器人检查,效果很好。

当我将它部署到 Firebase Functions 时,它似乎无法启动浏览器:

Error: Failed to launch the browser process!

[15:32:0209/162803.759118:ERROR:file_path_watcher_linux.cc(78)] Failed to read /proc/sys/fs/inotify/max_user_watches

[15:15:0209/162804.834741:ERROR:ozone_platform_x11.cc(234)] Missing X server or $DISPLAY

[15:15:0209/162804.834794:ERROR:env.cc(225)] The platform failed to initialize. Exiting.

是否有某种解决方案可以将其作为 Firebase 函数运行?

【问题讨论】:

  • 嗨!您能否分享对我的回答的反馈,以了解是否需要进一步的帮助?

标签: google-cloud-functions puppeteer


【解决方案1】:

我将从结合云功能和 Puppeteer 的案例开始。这是一个旧的question,它讨论了相同的日志错误。我认为这是寻找解决方案的第一个地方,因为它提供了指向报告类似错误日志的几个 Github 问题的链接。在另一个Github issue 中,用户推荐了用于在 Cloud 函数中启动 Puppeteer 的代码。 This example 也可以帮到你。

我将留下这两个可以引导您完成的指南。这个旧的medium article 和这个来自logrocket 的更新版本。

Other question 有几种解决方法;不幸的是,它们都不包含云函数,以防万一这纯粹是由 Puppeteer 引起的。这里是how to run Headful Mode

但是,如果您想避免被机器人检测到,还有一个discussion 可以为您提供一些提示。

对此没有确切的解决方案,因为似乎有多种原因和解决方法。我建议您在尝试了社区已经提供的一些替代方案后提出一个新问题,看看是否有更具体的解决方案。

【讨论】:

  • 没用,我的目标是 Firebase Functions 和 Headful
  • 如果您能分享到目前为止您所尝试的方法以及这些变通方法是否为您提供了任何有助于找到解决方案的日志或信息,我们将不胜感激。第一个链接涉及与 Cloud Functions 和无头(Puppeteer)非常相似的案例。 Cloud Functions 的两个版本都非常相似。见What is the difference between Cloud Functions and Firebase Functions?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多