puppeteer 是一个 Chrome 官方出品的 headless Chrome node 库。它提供了一系列的 API, 可以在无 UI 的情况下调用 Chrome 的功能, 适用于爬虫、自动化处理等各种场景
安装
这里直接使用 npm 安装就行了,建一个简单的 node 项目,package.json 内容如下
1 | { |
安装好后,chromium 也会一起安装,位置在node_modules/puppeteer/.local-chromium
。可以通过设置环境变量或者 npm config 中的 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD 跳过下载。如果不下载的话,启动时可以通过 puppeteer.launch([options])
配置项中的 executablePath 指定 Chromium 的位置。
测试
1 | const puppeteer = require('puppeteer') |
chromium 依赖安装
执行上面的代码报错,内容如下,大意就是缺少相关额库文件
1 | error while loading shared libraries: libcups.so.2: cannot open shared object file: No such file or directory |
根据库文件去反查在那个程序中。这里直接安装 cups-libs,记得去掉后面的版本号,不然子依赖不会安装。
1 | yum provides libcups.so.2 |
再启动还是缺少其他库文件,直接到 chromium 的执行文件下查询依赖
1 | cd node_modules/puppeteer/.local-chromium/linux-686378/chrome-linux |
字体安装
1 | yum groupinstall "fonts" -y |