1. 程式人生 > >Puppeteer安裝失敗解決

Puppeteer安裝失敗解決

首先,谷歌把Chromium支援了Headless,也就是無頭瀏覽器,不用介面直接在CI模式下執行,宣佈了phantomjs下崗

幾大應用:

  1. 爬蟲技術
  2. 前端unit test單元測試,比如結合karma+jasmine這些
  3. UI automation test,web介面自動化測試

然後,谷歌還做了一個Puppeteer,也就是用來操作瀏覽器的一套介面,可以很方便和Chromium瀏覽器通訊

但是,安裝Puppeteer的時候,需要從谷歌官方網站下載對應作業系統的Chromium,下載經常失敗

儘管可以使用手動下載,但畢竟不能自動化,然後就是從淘寶映象下載,也需要設定環境變數

npm install puppeteer-chromium-resolver --save

安裝時,會自動安裝,使用的時候就可以用快取快速呼叫了

require("puppeteer-chromium-resolver")({
    //hosts: ["https://storage.googleapis.com", "https://npm.taobao.org/mirrors"]
}).then(function (revisionInfo) {
    console.log("Chromium revision installed.");
    revisionInfo.puppeteer.launch({
        headless: false,
        executablePath: revisionInfo.executablePath
    });
});

1,可以自己設定映象hosts,預設是官方站和阿里映象,一個下載失敗,自動嘗試另一個,無縫解決國內國外下載

2,下載預設是儲存到user的目錄(也可以指定savePath),而不是node_modules,因為node_modules可能隨時刪除,下次安裝需要重新下載,同時,如果有多個專案都要用,那麼Chromium也是很大的,300多兆,如果多個太佔用空間,存到全域性的user目錄,只存一個,而且下載一次,就不再下載,方案和phantomjs類似

其他問題:

Puppeteer和Chromium Headless固然是極好的,但目前在一些舊的系統上安裝,缺少依賴無法執行,比如在linux centos6,還需要安裝依賴才能進行,可能並不是每個人都有許可權去安裝這些依賴,而phantomjs似乎沒有這些依賴問題