puppeteer 和 puppeteer-core 对比

优质
小牛编辑
123浏览
2023-12-01

自 v1.7.0 以来的每个版本我们都发布了两个包:

puppeteer 是浏览器自动化的 产品。安装后,它会下载一个版本的 Chromium,然后使用puppeteer-core 驱动工作。作为最终用户产品,puppeteer 支持一堆方便的 PUPPETEER_* env 变量来调整行为。

puppeteer-core 是一个 来帮助驱动任何支持 DevTools 协议的东西。puppeteer-core 在安装时不会下载 Chromium。作为一个库,puppeteer-core 是完全是通过其编程接口驱动的并忽略所有PUPPETEER_* env 变量。

总结一下,puppeteer-corepuppeteer 不同的地方:

  • puppeteer-core 在安装时不会自动下载 Chromium。
  • puppeteer-core忽略所有的 PUPPETEER_* env 变量.

在大多数情况下,你可以使用 puppeteer 包。

然而, 如果是下面这些情况那你需要使用 puppeteer-core:

  • 你正在构建 DevTools 协议顶部的另一个最终用户产品或库。例如,可以使用 puppeteer-core 构建 PDF 生成器并编写下载 headless_shell 的自定义install.js脚本而不是 Chromium 来节省磁盘空间。
  • 你正在打包 Puppeteer 用在 Chrome 扩展应用或浏览器中以使用 DevTools 协议,因为下载额外的 Chromium 二进制文件不是必须的。

当使用 puppeteer-core 时,使用下面这行代替原来的使用方式:

const puppeteer = require('puppeteer-core');