Puppeteer class:puppeteer

2020-06-29 13:58 更新

Puppeteer 模塊提供了一種啟動 Chromium 實例的方法。 下面就是使用 Puppeteer 進行自動化的一個典型示例:

const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser = >{
    const page = await browser.newPage();
    await page.goto('https://www.google.com'); // 其他操作...  await browser.close();});

    

Methods

  • puppeteer.connect(options)v0.9.0
  • puppeteer.createBrowserFetcher([options])v0.9.0
  • puppeteer.defaultArgs([options])v0.9.0
  • puppeteer.executablePath()v0.9.0
  • puppeteer.launch([options])v0.9.0

Methods

puppeteer.connect(options)v0.9.0

  • options <Object>
  • browserWSEndpoint <string> 一個 瀏覽器 websocket 端點鏈接。
  • ignoreHTTPSErrors <boolean> 是否在導(dǎo)航期間忽略 HTTPS 錯誤. 默認是 false。
  • defaultViewport <?Object> 為每個頁面設(shè)置一個默認視口大小。默認是 800x600。如果為 null 的話就禁用視圖口。
  • width <number> 頁面寬度像素。
  • height <number> 頁面高度像素。
  • deviceScaleFactor <number> 設(shè)置設(shè)備的縮放(可以認為是 dpr)。默認是 1。
  • isMobile <boolean> 是否在頁面中設(shè)置了 meta viewport 標簽。默認是 false。
  • hasTouch<boolean> 指定viewport是否支持觸摸事件。默認是 false。
  • isLandscape <boolean> 指定視口是否處于橫向模式。默認是 false。
  • slowMo <number> 將 Puppeteer 操作減少指定的毫秒數(shù)。這樣你就可以看清發(fā)生了什么,這很有用。
  • returns: <Promise<Browser>> 此方法將 Puppeteer 添加到已有的 Chromium 實例。

puppeteer.createBrowserFetcher([options])v0.9.0

  • options <Object>

  • host <string> 要使用的下載主機. 默認是 https://storage.googleapis.com。
  • path <string> 下載文件夾的路徑. 默認是 <root>/.local-chromium, <root> 是 puppeteer 的包根目錄。

  • platform <string> 可能的值有: mac, win32, win64, linux。默認是當前平臺。
    • returns: <BrowserFetcher>

puppeteer.defaultArgs([options])v0.9.0

  • options <Object> 設(shè)置瀏覽器可選項。有一下字段:
    • headless <boolean> 是否在 無頭模式 下運行瀏覽器。默認是 true 除非 devtools 選項是 true。
    • args <Array<string>> 傳遞給瀏覽器實例的其他參數(shù)??梢?在這 找到 Chromium 標志列表。
    • userDataDir <string> 用戶數(shù)據(jù)目錄 的路徑。
    • devtools <boolean> 是否為每個選項卡自動打開 DevTools 面板。如果這個選項是 true 的話, headless 選項將被設(shè)置為 false。
  • returns: <Array<string>> Chromium 啟動時使用的默認參數(shù)。

puppeteer.executablePath()v0.9.0

returns: <string> Puppeteer 希望找到綁定的 Chromium 的路徑。 如果使用 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD 跳過下載,則 Chromium 可能不存在。

puppeteer.launch([options])v0.9.0

  • options <Object> 在瀏覽器上設(shè)置的一組可配置選項。 有以下字段:
  • ignoreHTTPSErrors <boolean> 是否在導(dǎo)航期間忽略 HTTPS 錯誤. 默認是 false。
  • headless <boolean> 是否以 無頭模式 運行瀏覽器。默認是 true,除非 devtools 選項是 true。
  • executablePath <string> 可運行 Chromium 或 Chrome 可執(zhí)行文件的路徑,而不是綁定的 Chromium。如果 executablePath 是一個相對路徑,那么他相對于 當前工作路徑 解析。
  • slowMo <number> 將 Puppeteer 操作減少指定的毫秒數(shù)。這樣你就可以看清發(fā)生了什么,這很有用。
  • defaultViewport <?Object> 為每個頁面設(shè)置一個默認視口大小。默認是 800x600。如果為 null 的話就禁用視圖口。
  • width <number> 頁面寬度像素。
  • height <number> 頁面高度像素。
  • deviceScaleFactor <number> 設(shè)置設(shè)備的縮放(可以認為是 dpr)。默認是 1。
  • isMobile <boolean> 是否在頁面中設(shè)置了 meta viewport 標簽。默認是 false。
  • hasTouch<boolean> 指定viewport是否支持觸摸事件。默認是 false。
  • isLandscape <boolean> 指定視口是否處于橫向模式。默認是 false。
  • args <Array<string>> 傳遞給瀏覽器實例的其他參數(shù)。 這些參數(shù)可以參考 這里。
  • ignoreDefaultArgs <(boolean|<Array<string>>)> 如果是 true,那就不要使用 puppeteer.defaultArgs()。 如果給出了數(shù)組,則過濾掉給定的默認參數(shù)。這個選項請謹慎使用。默認為 false。
  • handleSIGINT <boolean> Ctrl-C 關(guān)閉瀏覽器進程。默認是 true。
  • handleSIGTERM <boolean> 關(guān)閉 SIGTERM 上的瀏覽器進程。默認是 true。
  • handleSIGHUP <boolean> 關(guān)閉 SIGHUP 上的瀏覽器進程。默認是 true.
  • timeout <number> 等待瀏覽器實例啟動的最長時間(以毫秒為單位)。默認是 30000 (30 秒). 通過 0 來禁用超時。
  • dumpio <boolean> 是否將瀏覽器進程標準輸出和標準錯誤輸入到 process.stdout 和 process.stderr 中。默認是 false。
  • userDataDir <string> 用戶數(shù)據(jù)目錄 路徑。
  • env <Object> 指定瀏覽器可見的環(huán)境變量。默認是 process.env。
  • devtools <boolean> 是否為每個選項卡自動打開DevTools面板。如果這個選項是 true,headless 選項將會設(shè)置成 false。
  • pipe <boolean> 通過管道而不是WebSocket連接到瀏覽器。默認是 false。
  • returns: <Promise<Browser>> 瀏覽器實例支持 Promise。

這個方法結(jié)合了下面3個步驟:

  1. 使用 puppeteer.defaultArgs() 作為一組默認值來啟動 Chromium。
  2. 啟動瀏覽器并根據(jù) executablePath ,handleSIGINT,dumpio 和其他選項開始管理它的進程。
  3. 創(chuàng)建一個 Browser 類的實例,并根據(jù) defaultViewport,slowMo 和 ignoreHTTPSErrors 初始化它。

ignoreDefaultArgs 選項可用于自定義(1)步驟的行為。 例如,要從參數(shù)中過濾掉 --mute-audio:

const browser = await puppeteer.launch({
    ignoreDefaultArgs: ['--mute-audio']
});

NOTE Puppeteer 也可以用來控制 Chrome 瀏覽器, 但它與綁定的 Chromium 版本在一起使用效果最好。不能保證它可以與任何其他版本一起使用。謹慎地使用 executablePath 選項。
如果 Google Chrome(而不是Chromium)是首選,一個 Chrome Canary 或 Dev Channel 版本是建議的。
在上面的
puppeteer.launch([options]) 中,任何提及的 Chromium 同樣也適用于 Chrome。
參考 這篇文章 了解 Chromium and Chrome 的不同。 本文 介紹了 Linux 用戶的一些差異。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號