手動下載Chrome并解決puppeteer無法使用問題
因為網(wǎng)絡(luò)原因,國內(nèi)安裝 puppeteer 的時候會報網(wǎng)絡(luò)超時。這里使用 puppeteer-core 之后使用手動下載的 Chrome 進行操作。思路很簡單,安裝一個不帶瀏覽器的 puppeteer ,再使用的時候?qū)g覽器地址指向一個可執(zhí)行的 Chrome 瀏覽器文件。
安裝
安裝 puppeteer-core 。
yarn add puppeteer-core
找到 puppeteer 中對應(yīng)的瀏覽器并下載
在 node_modules/puppeteer-core/lib/BrowserFetcher.js 中找到各平臺 Chrome 下載地址。其中 %s 替換為 DEFAULT_DOWNLOAD_HOST 的值, %d 替換為版本號。

在 node_modules/puppeteer-core/packages.json 中找到版本號

替換后得到下載地址
https://storage.googleapis.com/chromium-browser-snapshots/Mac/579032/chrome-mac.zip
下載后解壓,放在項目目錄中,這里我放在 chrome 下。
使用
這樣就可以使用了。
使用代碼
const puppeteer = require('puppeteer-core');
const path = require('path');
(async () => {
const browser = await puppeteer.launch({
// 這里注意路徑指向可執(zhí)行的瀏覽器。
// 各平臺路徑可以在 node_modules/puppeteer-core/lib/BrowserFetcher.js 中找到
// Mac 為 '下載文件解壓路徑/Chromium.app/Contents/MacOS/Chromium'
// Linux 為 '下載文件解壓路徑/chrome'
// Windows 為 '下載文件解壓路徑/chrome.exe'
executablePath: path.resolve('./chrome/Chromium.app/Contents/MacOS/Chromium')
});
const page = await browser.newPage();
await page.setViewport({
width: 375,
height: 667,
deviceScaleFactor: 1,
isMobile: true
})
await page.goto('https://marxjiao.com/');
await page.screenshot({path: 'marx-blog.png'});
await browser.close();
})();
執(zhí)行文件
node index.js
執(zhí)行后可看到,圖片已經(jīng)截圖出來了

代碼地址:https://github.com/MarxJiao/puppeteer-test
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Node 搭建一個靜態(tài)資源服務(wù)器的實現(xiàn)
這篇文章主要介紹了Node 搭建一個靜態(tài)資源服務(wù)器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-05-05
node.js請求HTTPS報錯:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解決方法
最近在工作中遇到一個問題,node.js請求HTTPS時報錯:Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE\,通過查找網(wǎng)上的一些資料找到了解決方法,現(xiàn)在總結(jié)下分享給大家,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12
Node.js Stream ondata觸發(fā)時機與順序的探索
今天小編就為大家分享一篇關(guān)于Node.js Stream ondata觸發(fā)時機與順序的探索,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
nodejs(officegen)+vue(axios)在客戶端導(dǎo)出word文檔的方法
這篇文章主要介紹了nodejs(officegen)+vue(axios)在客戶端導(dǎo)出word文檔的方法,需要的朋友可以參考下2018-07-07

