1. 程式人生 > 實用技巧 >部署 puppeteer 到 centos 上的常見問題

部署 puppeteer 到 centos 上的常見問題

cnpm 安裝 puppeteer

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm i puppeteer

安裝puppeteer後,檢查puppeteer依賴是否全部安裝,執行:

ldd node_modules/puppeteer/.local-chromium/linux-555668/chrome-linux/chrome

發現未安裝依賴,執行命令檢視其依賴包:repoquery --nvr --whatprovides xxx.xxx.xx

安裝此依賴: yum install yyy.xxx.zz

Chrome headless doesn't launch

需要安裝對應的依賴 (更多執行上的問題也可以檢視此連結)才能讓 puppeteer 在centos 上執行

yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc

再設定

const browser = await puppeteer.launch({
    headless: true,
    args: ['--no-sandbox']
})

即可執行

The only Chrome revision guaranteed to work is r555668

執行時報錯: UnhandledPromiseRejectionWarning: Error: Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r555668

如果是用 cnpm 安裝的 puppeteer,先 cnpm remove puppeteer 再 install。或者手動下載 555668 版本到本地,程式碼指定執行的路徑即可。

Centos7 安裝Chromium瀏覽器

在這裡下載Chromium

安裝chromium瀏覽器

[root@localhost hawtim]# yum localinstall chromium-58.0.3029.110-2.el7.x86_64.rpm

下載 Chromium 失敗解決辦法

更換國內Chromium源

PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.org
npm i puppeteer

或者用 cnpm 安裝

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm i puppeteer


作者:愛鴿子的玉米君
連結:https://www.jianshu.com/p/163d355d2454
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。