从v1.7.0以后每个版本发布两个包:
- puppeteer
- puppeteer-core
puppeteer是一款用于浏览器自动化的产品。安装后会下载Chromium,用puppeteer-core来驱动。puppeteer可支持一堆方便的PUPPETEER_ * env变量来调整其行为。
puppeteer-core是一个驱动任何支持DevTools协议的库。puppeteer-core在安装时不会下载Chromium。作为一个库,puppeteer-core完全通过其编程接口驱动,并忽略所有PUPPETEER_ * env变量。
puppeteer-core和puppeteer之间的区别可归结为以下两点:
- puppeteer-core在安装时不会自动下载Chromium。
- puppeteer-core忽略所有PUPPETEER_ * env变量。
在多数情况下可以使用puppeteer。
在以下情况下应该使用puppeteer-core:
- 构建基于DevTools协议的产品或库。例如,可以使用puppeteer-core构建PDF生成器并编写自定义install.js脚本,该脚本下载headless_shell而不是Chromium以节省磁盘空间。
- 你正在捆绑Puppeteer以在Chrome Extension /浏览器中使用DevTools协议,因为下载额外的Chromium二进制文件是不必要的。
使用puppeteer-core时,需更改以下代码:
const puppeteer = require('puppeteer-core');