puppeteer与puppeteer-core的关系。
本文摘自官网文档,便于查阅。源文档puppeteer vs puppeteer-core
从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_*变量。
在大多数情况下,您可以使用该puppeteer软件包。
但是,您应该在以下情况下使用puppeteer-core:
您将在DevTools协议之上构建另一个最终用户产品或库。例如,一个人可能会使用构建一个PDF生成器,puppeteer-core并编写一个自定义install.js脚本来下载headless_shell而不是Chromium,以节省磁盘空间。
您将Puppeteer绑定到Chrome扩展程序/浏览器中,并与DevTools协议结合使用,从而无需下载其他Chromium二进制文件。
您正在构建一套工具(其中puppeteer-core的要素之一),并且您希望将install.js脚本执行推迟到要使用Chromium之前。
使用时puppeteer-core,请记住更改包含行:
const puppeteer = require(‘puppeteer-core’);
然后,您需要调用puppeteer.connect([options])或puppeteer.launch([options])使用显式executablePath选项。
puppeteer-extra
puppeteer-extra是puppeteer的直接替代,它通过插件功能增强了已安装的puppeteer的功能。
可以通过puppeteer.use()
添加任意数量的插件。