跳到主要内容
版本: 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接口的文档中找到。