安装
要在你的项目中使用 Puppeteer,请运行:
npm i puppeteer
当你安装 Puppeteer 时,它会自动下载一个较新版本的
Chrome for Testing(~170MB macOS、~282MB Linux、~280MB Windows)以及一个 chrome-headless-shell 二进制文件(从 Puppeteer v21.6.0 开始),该文件保证可正常工作于 Puppeteer。默认情况下(从 Puppeteer v19.0.0 开始),浏览器会被下载到 $HOME/.cache/puppeteer 文件夹。有关控制下载行为的配置选项和环境变量,请参阅配置。
自动下载可能被阻止
许多现代包管理器(如新版 RFC 下的 npm、pnpm、Yarn Berry、Bun 和 Deno)默认会阻止依赖安装脚本。如果你的包管理器被配置为阻止这些脚本,自动下载将被跳过,运行 Puppeteer 时会抛出错误:Could not find Chrome (ver. ...).
要解决此问题,你可以:
- 在包安装完成后手动安装浏览器:运行:
npx puppeteer browsers install - 重新选择加入运行 Puppeteer 的 postinstall 脚本(例如,对于 npm,在
package.json的"allowScripts"中添加"puppeteer"):{ "allowScripts": { "puppeteer": true } }
自 v1.7.0 起,我们为每个版本发布两个包:
puppeteer 是用于浏览器自动化的产品。安装时,它会下载一个版本的 Chrome,然后使用 puppeteer-core 来驱动它。作为面向终端用户的产品,puppeteer 使用合理的默认设置自动完成多种工作流,这些默认设置可以自定义。
puppeteer-core 是一个库,用于驱动任何支持 DevTools 协议的内容。作为一个库,puppeteer-core 完全通过其编程接口驱动,这意味着它不假定任何默认设置,并且在安装时不会下载 Chrome。
如果你是连接远程浏览器或自行管理浏览器,则应使用 puppeteer-core。如果你自行管理浏览器,则需要调用 puppeteer.launch,并传入显式的 executablePath(如果浏览器安装在标准位置,则传入 channel)。
使用 puppeteer-core 时,请记得更改导入语句:
import puppeteer from 'puppeteer-core';