首页 > 其他分享 >Mac M1(arm 系列芯片)如何安装 Chromium | Puppeteer

Mac M1(arm 系列芯片)如何安装 Chromium | Puppeteer

时间:2023-04-27 23:46:57浏览次数:55  
标签:Chromium Puppeteer Mac API PROXY https chromium

最近写个脚本用到 puppeteer,然后安装 Chromium 出现一点问题,这里记录一下解决方案。

Puppeteer 自动安装失败

在 Puppeteer 安装时会自动安装 Chromium,然而却总是报错 502 导致下载失败,直接下载可以下载,命令行 wget 也可以,猜测是因为 Puppeteer 开启了新的 process 来安装导致环境变量丢失,然后就玄学上网失败了。

这会回头看了看 Puppeteer 的安装脚本,好像可以使用 npm_config_https_proxy 等配置来玄学上网。

function overrideProxy() {
    // Override current environment proxy settings with npm configuration, if any.
    const NPM_HTTPS_PROXY = process.env['npm_config_https_proxy'] || process.env['npm_config_proxy'];
    const NPM_HTTP_PROXY = process.env['npm_config_http_proxy'] || process.env['npm_config_proxy'];
    const NPM_NO_PROXY = process.env['npm_config_no_proxy'];
    if (NPM_HTTPS_PROXY) {
        process.env['HTTPS_PROXY'] = NPM_HTTPS_PROXY;
    }
    if (NPM_HTTP_PROXY) {
        process.env['HTTP_PROXY'] = NPM_HTTP_PROXY;
    }
    if (NPM_NO_PROXY) {
        process.env['NO_PROXY'] = NPM_NO_PROXY;
    }
}

不过当时没看就直接打算手动安装 Chromium 了,要手动安装在安装 Puppeteer 时需要先关闭自动下载:

PUPPETEER_SKIP_DOWNLOAD='true' pnpm add puppeteer

这样就可以跳过 Puppeteer 中自动的 Chromium 安装。

手动安装 Chromium

失败尝试

手动安装首先是使用了 homebrew 的方式,但是由于之前玩 Stable Diffusion 一些依赖包的兼容问题,我的 homebrew 切到了 x86 版本,所以安装后的是 intel 芯片版本的 Chromium,导致无法打开,打开就会显示弹窗:

You can’t open the application “Chromium” because this application is not supported on this Mac.

picture 1

无奈就去官网: https://download-chromium.appspot.com/ 手动下载,结果不成想官网挂的也是 intel 版本:

picture 2

不死心的下载试了一下,果然不行。

成功安装

然后无奈的搜了一下,发现了这个问题: https://stackoverflow.com/questions/66002337/is-the-homebrew-chromium-m1-optimised ,其中提及到 homebrew 中安装的脚本:

 arch = Hardware::CPU.intel? ? "Mac" : "Mac_Arm"
 ...
 url "https://commondatastorage.googleapis.com/chromium-browser-snapshots/#{arch}/#{version}/chrome-mac.zip

原来只需要将地址中的架构类型变更更换为想要的版本就可以了。

而官网对应的下载地址是: https://download-chromium.appspot.com/dl/Mac?type=snapshots ,所以我将其中的 Mac 替换为 Mac_Arm 得到如下地址: https://download-chromium.appspot.com/dl/Mac_Arm?type=snapshots ,打开果然成功下载了。

下载完成后解压,就拿到了 Arm 版本的 Chromium。 然而打开时又出现了新的问题:

Chromium is damaged and can't be opened. You should move it to the Trash.

picture 3

遇到这个报错必须要移除对应的验证:

xattr -c /Applications/Chromium.app

好了,终于可以打开了,可喜可贺。

API Keys missing

然而当我打开后又发现 Chromium 上飘着一行提示:

Google API Keys are missing. Some functionality of chromium will be disabled.

不过此时的 Chromium 已经可以正常使用了,但是子曾经曰过:“遇到问题不能坐以待毙”,还是处理下好了。

查了一下原因是 Chromium 的一些功能如 Google 账号同步等等需要使用 Google API Keys,要处理这个提示大体是两种思路:

  1. 可以选择禁用这个提示,但是这样 Chromium 的一些功能也就无法使用了。
  2. 申请 Google API keys,并填入。

如果想要禁用提示可以编辑 Chromium.app > Contents > Info.plist 文件并添加以下内容:

<key>LSEnvironment</key>
<dict>
    <key>GOOGLE_API_KEY</key>
    <string>no</string>
    <key>GOOGLE_DEFAULT_CLIENT_ID</key>
    <string>no</string>
    <key>GOOGLE_DEFAULT_CLIENT_SECRET</key>
    <string>no</string>
</dict>

而如果想要填入 Google API Keys 则需要去 Google Cloud 申请 API Keys,具体的流程可以参考: https://www.chromium.org/developers/how-tos/api-keys/#acquiring-keys

还有一种方法就是直接使用网上流出的 API Keys,比如这个:

export GOOGLE_API_KEY="AIzaSyCkfPOPZXDKNn8hhgu3JrA62wIgC93d44k"
export GOOGLE_DEFAULT_CLIENT_ID="811574891467.apps.googleusercontent.com"
export GOOGLE_DEFAULT_CLIENT_SECRET="kdloedMFGdGla2P1zacGjAQh"

在 bash 执行上述代码将 API Keys 设置到环境变量重启 Chromium 即可生效。

但是一定需要注意 ⚠️:使用了 API Keys 可能会导致数据信息泄漏问题,所以如果有敏感信息切勿使用他人提供的 Key!!!

在 Puppeteer 中使用

由于 Chromium 不是由 Puppeteer 安装的,所以 Puppeteer 会找不到 Chromium 位置,需要在 Puppeteer 的配置文件中添加 executablePath 来指定 Chromium 的位置:

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

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

参考资料

标签:Chromium,Puppeteer,Mac,API,PROXY,https,chromium
From: https://www.cnblogs.com/zxbing0066/p/17360549.html

相关文章

  • iOS MachineLearning 系列(9)—— 人物蒙版图生成
    iOSMachineLearning系列(9)——人物蒙版图生成人物蒙版图能力是Vision框架在iOS15中新增的功能,这个功能可以将图片中的人物按照轮廓生成无光蒙版。无光蒙版在实际业务中非常有用,使用此蒙版可以方便的将人物从图片中提取出来,然后和其他的背景图进行合成。1-人物蒙版的提取首......
  • mac更换homebrew
    在mac系统中,使用homebrew可以很方便的管理包。按照官网的说明执行以下命令时总是报错: /usr/bin/ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"应该是这个资源访问有问题,那么我们可以尝试使用国内的镜像。给大家推荐一个中科院的镜......
  • User installations are disabled via policy on the machine. 安装python
    Userinstallationsaredisabledviapolicyonthemachine. 解决办法1、在运行里输入gpedit.msc;(grouppolicy)组策略2、计算机配置管理>>管理模板>>windows组件>>windowsInstaller>>禁止用户安装;3、打开它禁用此项就可以了。    ......
  • Mac使用技巧
    1.快捷键windows下的control改成cmdctrl+x剪切、c复制、v粘贴、z撤销、q退出、space聚焦查找、tab切换应用、w关闭并不退出截屏cmd+shift+3捕捉整个屏幕,4:自选截屏区域,5截屏或录屏cmd+ctrl+space:添加emoji2.cmd摁住cmd移动菜单栏图标聚焦时摁住cmd打......
  • electron 配置mac安装的图标, 生成.icns文件
    electron配置mac安装的图标使用的icon.icns准备一张1024*1024的png图片1.在项目根目录中创建文件()mkdirtmp.iconset2.生成多个比例不同的图片sips-z1616logo.png--outtmp.iconset/icon_16x16.pngsips-z3232logo.png--outtmp.iconset/icon_16x16@2x......
  • Mac好用的文献管理软件-EndNote 20
    EndNote20是一款以强大功能为基础,以文献管理软件为核心的跨平台数据库管理系统。EndNote20具有强大的文献检索和处理功能,支持快速检索文本、文献和图像。可以通过一键下载安装到Mac/win,也可以在Windows上使用。EndNote20可以将文件管理和处理功能集成到一个单一文件夹中,便于......
  • mac冒险解谜游戏:猫城迷案Nine Noir Lives 激活版
    NineNoirLives是一款猫咪主题的冒险解谜游戏,由微型工场开发并于2020年发行。游戏的画面采用了手绘风格,背景设置在一个充满黑色幽默和神秘气氛的城市中。玩家扮演一只名叫“帕特里克”(Patrick)的黑猫侦探,跟随着一系列线索进行调查,揭开隐藏在城市中的阴谋和秘密。通过与其他角色交......
  • macos Python.运行时,遇到这个问题:ImportError: ('Unable to load OpenGL library', "
    问题安装https://gitee.com/mirrors/animated-drawings这个部署时,安装环境出现如下问题:pycharm下打开这个文件:python3.9/site-packages/OpenGL/platform/ctypesloader.py在79行下修改如下:......
  • mac 上安装redis
    苹果电脑可以通过Homebrew来安装Redis。请按照以下步骤进行操作:1.打开Terminal(终端)应用程序2.输入以下命令以安装Homebrew:```/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install.sh)"```3.输入以下命令以更新Homebrew,并检查是......
  • markdown教程(Mac版)—测试文档
    markdown的使用说明(Mac)——测试文档这是借鉴哔哩哔哩的up主,维素s的视频内容。这个版本主要是测试vscode编写博客园。侵权删。网址:https://www.bilibili.com/video/BV1h84y1Y7nn/?spm_id_from=333.337.search-card.all.click&vd_source=9b34f68ae41432066bc35c80468eef98一、标......