設定
預設情況下,Puppeteer 會下載並使用特定版本的 Chrome,以確保其 API 開箱即用。若要將 Puppeteer 與不同版本的 Chrome 或 Chromium 搭配使用,請在建立 Browser
實例時傳入可執行檔的路徑
const browser = await puppeteer.launch({executablePath: '/path/to/Chrome'});
您也可以將 Puppeteer 與 Firefox 搭配使用。請參閱跨瀏覽器支援狀態以取得更多資訊。
Puppeteer 中的所有預設值都可以透過兩種方式進行自訂
請注意,某些選項只能透過環境變數進行自訂(例如 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 指令碼才能生效。
最簡單的方法是執行
- npm
- Yarn
- pnpm
npx puppeteer browsers install
yarn dlx puppeteer browsers install
pnpm dlx puppeteer browsers install
範例
下載多個瀏覽器
從 v23.0.0 開始,Puppeteer 允許下載多個瀏覽器,而無需執行多個指令。
更新 Puppeteer 設定檔
/**
* @type {import("puppeteer").Configuration}
*/
module.exports = {
// Download Chrome (default `skipDownload: false`).
chrome: {
skipDownload: false,
},
// Download Firefox (default `skipDownload: true`).
firefox: {
skipDownload: false,
},
};
執行 CLI 以下載新設定
- npm
- Yarn
- pnpm
npx puppeteer browsers install
yarn dlx puppeteer browsers install
pnpm dlx puppeteer browsers install
變更預設快取目錄
從 v19.0.0 開始,Puppeteer 將瀏覽器儲存在 ~/.cache/puppeteer
中,以便在安裝之間全域快取瀏覽器。如果 puppeteer
在某些建置步驟期間被封裝並移動到新的位置,這可能會導致問題。以下設定可以解決此問題(重新安裝 puppeteer
以生效)
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_PROXY
、HTTPS_PROXY
、NO_PROXY
- 定義用於下載和執行瀏覽器的 HTTP 代理設定。
所有其他選項都可以在 Configuration
介面的文件中找到。