跳至主要內容
版本:23.11.1

設定

預設情況下,Puppeteer 會下載並使用特定版本的 Chrome,以確保其 API 開箱即用。若要將 Puppeteer 與不同版本的 Chrome 或 Chromium 搭配使用,請在建立 Browser 實例時傳入可執行檔的路徑

const browser = await puppeteer.launch({executablePath: '/path/to/Chrome'});

您也可以將 Puppeteer 與 Firefox 搭配使用。請參閱跨瀏覽器支援狀態以取得更多資訊。

Puppeteer 中的所有預設值都可以透過兩種方式進行自訂

  1. 設定檔建議
  2. 環境變數
注意

請注意,某些選項只能透過環境變數進行自訂(例如 HTTPS_PROXY)。

注意

puppeteer-core 會忽略 Puppeteer 的設定檔和環境變數。

設定檔

設定檔是設定 Puppeteer 的建議選擇。Puppeteer 將在檔案樹中尋找以下任何格式

  • .puppeteerrc.cjs,
  • .puppeteerrc.js,
  • .puppeteerrc (YAML/JSON),
  • .puppeteerrc.json,
  • .puppeteerrc.yaml,
  • puppeteer.config.js, 和
  • puppeteer.config.cjs

請參閱 Configuration 介面以取得可能的選項。

變更下載選項

當對設定進行的變更包含下載選項的變更時,您需要重新執行 postinstall 指令碼才能生效。

最簡單的方法是執行

npx puppeteer browsers install

範例

下載多個瀏覽器

從 v23.0.0 開始,Puppeteer 允許下載多個瀏覽器,而無需執行多個指令。

更新 Puppeteer 設定檔

project-directory/.puppeteerrc.cjs
/**
* @type {import("puppeteer").Configuration}
*/
module.exports = {
// Download Chrome (default `skipDownload: false`).
chrome: {
skipDownload: false,
},
// Download Firefox (default `skipDownload: true`).
firefox: {
skipDownload: false,
},
};

執行 CLI 以下載新設定

npx puppeteer browsers install

變更預設快取目錄

從 v19.0.0 開始,Puppeteer 將瀏覽器儲存在 ~/.cache/puppeteer 中,以便在安裝之間全域快取瀏覽器。如果 puppeteer 在某些建置步驟期間被封裝並移動到新的位置,這可能會導致問題。以下設定可以解決此問題(重新安裝 puppeteer 以生效)

project-directory/.puppeteerrc.cjs
const {join} = require('path');

/**
* @type {import("puppeteer").Configuration}
*/
module.exports = {
// Changes the cache location for Puppeteer.
cacheDirectory: join(__dirname, '.cache', 'puppeteer'),
};
注意

請注意,這僅適用於 CommonJS 設定檔,因為需要有關周圍環境的資訊(在本例中為 __dirname)。

環境變數

除了設定檔之外,Puppeteer 還會尋找某些環境變數以自訂行為。環境變數將始終覆蓋適用的設定檔選項。

以下選項為僅限環境的選項

  • HTTP_PROXYHTTPS_PROXYNO_PROXY - 定義用於下載和執行瀏覽器的 HTTP 代理設定。

所有其他選項都可以在 Configuration 介面的文件中找到。