Puppeteer 无法在谷歌云功能中工作

2024-04-26

Puppeteer 无法在谷歌云中工作!

镀铬错误如图所示。

我已经在这里实施了该建议:Heroku 上的 Puppeteer 错误:找不到 Chromium https://stackoverflow.com/questions/74385208/puppeteer-error-on-heroku-could-not-find-chromium

我还尝试将我的 puppeteer 版本从 19.x 降级到 18.x 和 17.x,但没有成功。

我会尝试使用剧作家,除非这里有人知道如何解决这个问题......

EDIT:我尝试过使用 puppeteer-chromium-resolver 而不是 puppeteer,但是现在我完全无法在节点运行时 16 和 18 上部署我的云功能。

EDIT 2:我放弃了 puppeteer-chromium-resolver,转而使用 chrome-aws-lambda,并添加了以下代码片段并部署到 Google 云函数:

const bundledChromium = require('chrome-aws-lambda');
const playwright = require('playwright-core');

(async () => {
    const browser = await Promise.resolve(bundledChromium.executablePath).then(
    (executablePath) => {
      console.log("executablePath: ", executablePath);
      if (!executablePath) {
        // local execution
        return playwright.chromium.launch({});
      }
      return playwright.chromium.launch({ executablePath });
    }
  );
})()

该声明console.log("executablePath: ", executablePath);打印“/tmp/chromium”

但是我收到另一个错误:

2022-12-27 15:12:00.281 HKT
function-1ol6uqbjimrh1 Function execution started
2022-12-27 15:12:00.295 HKT
function-1ol6uqbjimrh1 executablePath: /tmp/chromium
2022-12-27 15:12:00.305 HKT
function-1ol6uqbjimrh1 Function execution took 24 ms, finished with status: 'ok'
2022-12-27 15:12:00.414 HKT
function-1ol6uqbjimrh1 browserType.launch: spawn EFAULT
2022-12-27 15:12:00.414 HKT
function-1ol6uqbjimrh1 =========================== logs ===========================
2022-12-27 15:12:00.414 HKT
function-1ol6uqbjimrh1 <launching> /tmp/chromium --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --user-data-dir=/tmp/playwright_chromiumdev_profile-K9OYeC --remote-debugging-pipe --no-startup-window
2022-12-27 15:12:00.414 HKT
function-1ol6uqbjimrh1 ============================================================
2022-12-27 15:12:00.414 HKT
function-1ol6uqbjimrh1 at /workspace/index.js:37:25
2022-12-27 15:12:00.414 HKT
function-1ol6uqbjimrh1 at async main (/workspace/index.js:30:21) {
2022-12-27 15:12:00.414 HKT
function-1ol6uqbjimrh1 name: 'Error'
2022-12-27 15:12:00.414 HKT
function-1ol6uqbjimrh1 }

不知道如何从这里继续......

最终编辑:我尝试在 ECR 中使用 AWS lambda 和 puppeteer,但这也不起作用,所以我在 pythonanywhere.com 上使用 python selenium。整个经历令人沮丧,但至少硒有效。

以下是 github 的链接,了解更多详细信息:https://github.com/Sparticuz/chromium/issues/29 https://github.com/Sparticuz/chromium/issues/29


1. Add .puppeteerrc.cjs并更改默认缓存目录。

const { join } = require("path");

/**
 * @type {import("puppeteer").Configuration}
 */
module.exports = {
  // Changes the cache location for Puppeteer.
  cacheDirectory: join(__dirname, ".cache", "puppeteer"),
};

2.添加后.puppeteerrc.cjs,必须重新安装 puppeteer 软件包,因此您必须从 GCP 中删除您的函数,然后重新部署您的函数。

3. Chrome 将安装在您的源目录中,puppeteer 现在可以找到 Chrome 的正确路径。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Puppeteer 无法在谷歌云功能中工作 的相关文章

随机推荐

  • 删除 Pandas DataFrame 中的多个行范围

    例如 如果我们有一个大小为 100 5 的 Pandas DataFrame 并且想要删除多个行范围 不是多行或一系列行 而是多个行范围 通过索引 有没有办法做到这一点而不必循环索引 举个例子 如果我想删除 Pandas DataFrame
  • Git rebase 分支与所有父分支(或依赖子分支)

    是否可以使用 Git 来对分支及其所有父分支进行变基 我认为 父分支 是在这里使用的正确形式 根据您的观点 您也可以将它们称为依赖子分支 但是 遵循提交的父指针将让您到达这些分支 所以恕我直言称它们为 父分支 是公平的 我经常使用分支作为快
  • 使用 Jackson 对 List 进行自定义反序列化

    我正在尝试编写一个自定义反序列化器 以便减少从其他地方收到的大量数据 我从反序列化器返回自定义对象列表 我的问题是 如果这是我的自定义反序列化器 我该怎么做 public class MyCustomDeserializer extends
  • 如何避免Spring的@RequestMapping路径冲突?

    我想使用 Spring 定义 REST API 我有这 2 个 Controller 方法 RequestMapping value machineId workspaces workspaceId method RequestMethod
  • 从左到右和从右到左滑动图像

    我正在开发一个应用程序 我想在其中添加可以从左到右和从右到左滑动的图像 如下图所示 内部的白色游戏图像应该从左到右移动 反之亦然 到目前为止我所做的是 我能够从左到右移动单个图像 反之亦然 但我想要设置背景图像 就像上面的圆形黑色背景一样
  • 更改 Mac 上的默认 python 版本 - 安装 Biopython

    我的 Mac 预装了 python 2 7 作为默认的 python 版本 但是 许多软件包和软件不再支持该版本 我搜索了几个在线论坛 了解如何更改 mac 上的默认 python 版本 但是 它们似乎都不起作用 我还安装了最新版本的 py
  • 如何使用 Validators 类在 Angular2 中显示不同的电子邮件验证消息?

    我在用表格组 表单生成器 and 验证者类来验证 Angular2 应用程序中的表单 这就是我定义电子邮件和密码验证所需的验证规则的方式 export class LoginComponent implements OnInit login
  • 在 mac OS X 上挂载批准回调

    我想在 Mac OS X 上授权 USB CD 现在我使用 DiskArbitration 框架在用户模式下获取 MountApprovalCallback 但这个回调的问题在于它没有保证 如果我会得到回调我正在使用CFUserNotifi
  • Twig 用实体替换非 ASCII 字符

    嗯 这真的很奇怪 Twig 我在 Symfony 3 中使用它 将非 ascii 字符 例如 替换为实体 例如 322 但是 仅在 Javascript 部分 我不知道为什么以及如何禁用它 编辑 是的 我在 Netbeans 和 HTML
  • node_modules/@types/googlemaps/index.d.ts 中出现错误 - 元组类型元素列表不能为空

    在尝试整合的同时角度谷歌地图 agm在我的 Angular 项目中 我收到此错误 某些配置有问题或者可能是我错过了一些东西我正在这个项目中使用材料 6 和角度 6 感谢您的帮助 在终端控制台中 ERROR in node modules t
  • Java 用户帐户管理解决方案

    我目前正在开发一个依赖权限机制来管理用户内容的 Java Web 应用程序 这当然意味着我们需要管理用户 我们当前的用户管理系统是一个内部系统 用于管理 RDBMS 中有关用户 组以及用户和权限的信息 该系统可以工作 但维护起来很麻烦 我想
  • HTML 时间输入类型 - 如何在单击任意位置而不仅仅是单击时钟图标时选择时间菜单视图

    I working on the time input type in HTML my problem is when I click on the small clock icon on the right side of the inp
  • AES-256 加密和 Apple iTunes 导出限制

    我有一个很大的问题 我开发了 3 个应用程序 2 个用于 IOS 1 个用于 mac osx 来加密文件RNCryptor https github com rnapier RNCryptor 女巫是一个CCCryptor AES 加密 包
  • CUDA Visual Studio 2010 Express 构建错误

    我正在尝试在 64 位 Windows 7 上使用 Visual Studio 2010 Express 在 Windows 上开始 CUDA 编程 我花了一段时间来设置环境 然后我刚刚编写了我的第一个程序 helloWorld cu 目前
  • EntityDataSource 在查询中将 * 替换为 % 通配符

    我有一个在很多地方使用 EntityDataSource 的应用程序 在 EDS 中 我根据 TextBox 中的用户输入手动构建Where 子句 我希望用户在查询数据时能够输入 星号 而不是 有没有像使用 Entity SQL 或 EDS
  • .crx 文件在 Chrome 中安装

    我刚刚创建了一个非常简单的 chrome 扩展 它运行良好 但是当我转换为 crx 文件并尝试用 chrome 打开它时 没有任何反应 我的chrome浏览器版本是19 0 1081 2 dev m 我的扩展使用jquery 1 4 2 m
  • NSFileHandle writeData:异常处理

    这可能是一个相当广泛的问题 但我找不到任何在线资源来解决或解释这个问题 问题是创建后NSFileHandle writer NSFileHandle fileHandleForWritingAtPath path 当你使用 writer w
  • Pandas.DataFrame interpolate() 方法='线性'和'最近'返回尾随 NaN 不一致的结果

    我在探索pandas DataFrame interpolate 用不同的方法 linear vs nearest 当尾部缺少数据时 我发现这两种方法的输出不同 例如 import pandas as pd version 0 16 2 o
  • Ruby on Rails 3:如何分别检索 POST 和 GET 参数?

    我知道你可以使用获取参数params 但问题是它合并了所有参数 无论它们是通过GET or POST 如果您通过以下方式发送请求GET 没问题 参数只能挤在URL里 但如果你发送一个POST具有类似 URL 的请求 blabla foo b
  • Puppeteer 无法在谷歌云功能中工作

    Puppeteer 无法在谷歌云中工作 镀铬错误如图所示 我已经在这里实施了该建议 Heroku 上的 Puppeteer 错误 找不到 Chromium https stackoverflow com questions 74385208