简介
Puppeteer is a Node library which provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome or Chromium.
Puppeteer
是一个 node 库,提供了一组高级 API,通过 DevTools 协议控制无界面的 Chromium 浏览器 (你也可以配置成有界面的)。- Puppeteer 允许开发者从浏览器之外的环境与 Chromium 进行交互,可以完全模拟人类能在浏览器上所能完成的大部分操作。
起步
运行环境
- Puppeteer 至少需要 Node v6.4.0,但网上资料基上本都大量使用了
async/await
,建议使用 Node v7.6.0 或更高版本。
安装 Puppeteer
- 直接安装:
npm i puppeteer
或者yarn add puppeteer
- 直接安装会顺便安装 Chromium 浏览器。
- 直接安装需要你的终端也可以翻墙。
- 忽略安装 Chromium
npm install puppeteer --ignore-scripts
- 可以使用本地的 Chrome(v59+).
官方样例 - 实现网页截图
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://github.com/GoogleChrome/puppeteer');
await page.screenshot({path: 'puppeteer.png'});
await browser.close();
})();
- 代码实现了网页截图,流程如下:
- 通过
puppeteer.launch()
创建一个浏览器对象browser
。 - 通过
browser
新打开一个标签页,获取页面对象page
。
- 通过