Puppeteer 中文文档v25.8.0

配置

默认情况下,Puppeteer 会下载并使用特定版本的 Chrome,以确保其 API 开箱即用。若要搭配其他版本的 Chrome 或 Chromium 使用 Puppeteer,请在创建Browser实例时传入可执行文件的路径:

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

你也可以搭配 Firefox 使用 Puppeteer。更多信息请参阅跨浏览器支持状态

Puppeteer 中的所有默认设置都可以通过以下两种方式自定义:

  1. 配置文件推荐
  2. 环境变量
⚠️警告

请注意,某些选项只能通过环境变量进行自定义(例如HTTPS_PROXY)。

⚠️警告

Puppeteer 的配置文件和环境变量会被puppeteer-core忽略。

配置文件

配置文件是配置 Puppeteer 的推荐方式。Puppeteer 会在文件树中查找以下任一格式:

  • package.json
  • .config/puppeteer.config.cjs
  • .config/puppeteer.config.js
  • .config/puppeteerrc.cjs
  • .config/puppeteerrc.js
  • .config/puppeteerrc.json
  • .config/puppeteerrc (JSON)
  • .puppeteerrc.cjs
  • .puppeteerrc.js
  • .puppeteerrc.json
  • .puppeteerrc (JSON)
  • puppeteer.config.cjs
  • puppeteer.config.js

可能的选项请参阅Configuration接口。

更改下载选项

当配置的更改涉及下载选项时,你需要重新运行 postinstall 脚本才能使更改生效。

最简单的方法是运行:

npx puppeteer browsers install

示例

下载多个浏览器

自 v23.0.0 起,Puppeteer 允许一次下载多个浏览器,而无需运行多条命令。

更新 Puppeteer 配置文件:

/**
 * @type {import("puppeteer").Configuration}
 */
export default {
  // 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即可生效):

import {join} from 'path';

/**
 * @type {import("puppeteer").Configuration}
 */
export default {
  // Changes the cache location for Puppeteer.
  cacheDirectory: join(import.meta.dirname, '.cache', 'puppeteer'),
};

环境变量

除配置文件外,Puppeteer 还会查找某些环境变量来自定义行为。适用时,环境变量始终会覆盖配置文件中的选项。

以下选项是_仅环境变量_选项

  • HTTP_PROXYHTTPS_PROXYNO_PROXY - 定义用于下载和运行浏览器的 HTTP 代理设置。
ℹ️注意

若要使用代理下载浏览器,你必须安装proxy-agent包作为可选的 peer dependency。

所有其他选项都可以在Configuration接口的文档中找到。