我正在尝试使用Puppeteer+Firebase函数,同时使用headless:false选项
await puppeteer.launch({
headless: false
});
它在本地运行良好。我使用headless:false,这样它就不会触发机器人检查,效果很好。
当我将其部署到Firebase函数时,它似乎无法启动浏览器:
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函数运行?
我将从结合Cloud函数和Puppeter的案例开始。这是一个讨论相同日志错误的老问题。我认为这是寻找解决方案的第一步,因为它提供了一些Github问题的链接,这些问题报告了类似的错误日志。在另一个Github问题中,一位用户推荐了在云中启动Puppeter函数的代码。这个例子也可以帮助你。
我会留下这两个导游带你过去。这篇旧的媒体文章和logrocket的更新版本。
另一个问题有几个变通办法;不幸的是,它们都不包括云函数,以防这纯粹是由Puppeteer引起的。以下是如何运行Headful Mode。
然而,如果你想避免被机器人检测到,也有关于这一点的讨论,可以给你一些提示。
对此没有确切的解决方案,因为似乎有几个原因和解决办法。我建议你在尝试了社区已经提供的一些替代方案后,再提出一个新的问题,看看是否有更具体的解决方案。