最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Mac M1(arm 系列芯片)如何安裝 Chromium | puppeteer

2023-04-27 23:38 作者:嘿嘿不務(wù)正業(yè)  | 我要投稿

最近寫個腳本用到 puppeteer,然后安裝 Chromium 出現(xiàn)一點問題,這里記錄一下解決方案。

Puppeteer 自動安裝失敗

在 Puppeteer 安裝時會自動安裝 Chromium,然而卻總是報錯 502 導(dǎo)致下載失敗,直接下載可以下載,命令行 wget 也可以,猜測是因為 Puppeteer 開啟了新的 process 來安裝導(dǎo)致環(huán)境變量丟失,然后就科學(xué)上網(wǎng)失敗了。

這會回頭看了看 Puppeteer 的安裝腳本,好像可以使用 npm_config_https_proxy 等配置來科學(xué)上網(wǎng)。

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; ? ?} }

不過當(dāng)時沒看就直接打算手動安裝 Chromium 了,要手動安裝在安裝 Puppeteer 時需要先關(guān)閉自動下載:

PUPPETEER_SKIP_DOWNLOAD='true' pnpm add puppeteer

這樣就可以跳過 Puppeteer 中自動的 Chromium 安裝。

手動安裝 Chromium

失敗嘗試

手動安裝首先是使用了 homebrew 的方式,但是由于之前玩 Stable Diffusion 一些依賴包的兼容問題,我的 homebrew 切到了 x86 版本,所以安裝后的是 intel 芯片版本的 Chromium,導(dǎo)致無法打開,打開就會顯示彈窗:

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

picture 1

無奈就去官網(wǎng): https://download-chromium.appspot.com/ 手動下載,結(jié)果不成想官網(wǎng)掛的也是 intel 版本:

picture 2

不死心的下載試了一下,果然不行。

成功安裝

然后無奈的搜了一下,發(fā)現(xiàn)了這個問題: 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

原來只需要將地址中的架構(gòu)類型變更更換為想要的版本就可以了。

而官網(wǎng)對應(yīng)的下載地址是: https://download-chromium.appspot.com/dl/Mac?type=snapshots ,所以我將其中的 Mac 替換為 Mac_Arm 得到如下地址: https://download-chromium.appspot.com/dl/Mac_Arm?type=snapshots ,打開果然成功下載了。

下載完成后解壓,就拿到了 Arm 版本的 Chromium。 然而打開時又出現(xiàn)了新的問題:

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

picture 3

遇到這個報錯必須要移除對應(yīng)的驗證:

xattr -c /Applications/Chromium.app

好了,終于可以打開了,可喜可賀。

API Keys missing

然而當(dāng)我打開后又發(fā)現(xiàn) Chromium 上飄著一行提示:

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

不過此時的 Chromium 已經(jīng)可以正常使用了,但是子曾經(jīng)曰過:“遇到問題不能坐以待斃”,還是處理下好了。

查了一下原因是 Chromium 的一些功能如 Google 賬號同步等等需要使用 Google API Keys,要處理這個提示大體是兩種思路:

  1. 可以選擇禁用這個提示,但是這樣 Chromium 的一些功能也就無法使用了。

  2. 申請 Google API keys,并填入。

如果想要禁用提示可以編輯 Chromium.app > Contents > Info.plist 文件并添加以下內(nèi)容:

<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

還有一種方法就是直接使用網(wǎng)上流出的 API Keys,比如這個:

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

在 bash 執(zhí)行上述代碼將 API Keys 設(shè)置到環(huán)境變量重啟 Chromium 即可生效。

但是一定需要注意 ??:使用了 API Keys 可能會導(dǎo)致數(shù)據(jù)信息泄漏問題,所以如果有敏感信息切勿使用他人提供的 Key?。。?/strong>

在 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' };

參考資料

  • https://stackoverflow.com/questions/66002337/is-the-homebrew-chromium-m1-optimised

  • https://stackoverflow.com/questions/21276763/google-api-keys-missing-warning-message-when-using-chromium-portable

  • https://groups.google.com/a/chromium.org/g/chromium-dev/c/cTPJG7KnBpI?pli=1

  • https://www.chromium.org/developers/how-tos/api-keys/#acquiring-keys



Mac M1(arm 系列芯片)如何安裝 Chromium | puppeteer的評論 (共 條)

分享到微博請遵守國家法律
内江市| 枝江市| 海丰县| 大石桥市| 林口县| 龙门县| 揭阳市| 拉孜县| 华宁县| 桃源县| 余干县| 丰镇市| 伊通| 年辖:市辖区| 兰坪| 科技| 都匀市| 莆田市| 高雄县| 湄潭县| 临朐县| 安国市| 红河县| 芜湖县| 通州市| 军事| 敖汉旗| 西和县| 无棣县| 饶阳县| 澄迈县| 邢台县| 成武县| 聂拉木县| 巩义市| 吉木萨尔县| 雷州市| 东乡族自治县| 阜南县| 忻城县| 浦城县|