Puppeteer 是一个控制 headless Chrome 的 Node.js API 。它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headless Chrome。它还可以配置为使用完整的(非 headless)Chrome
Puppeteer的例子:
-
生成屏幕截图和 PDF 页面
-
检索 SPA 并生成预渲染内容(即“SSR”)
-
从网站上爬取内容
-
自动提交表单,UI测试,键盘输入等
-
创建一个最新的自动测试环境。使用最新的 JavaScript 和浏览器功能,在最新版本的 Chrome 中直接运行测试
-
捕获网站的时间线跟踪,以帮助诊断性能问题
const puppeteer = require('puppeteer');(async () => {const browser = await puppeteer.launch();const page = await browser.newPage();await page.goto('https://example.com');await page.screenshot({path: 'example.png'});await browser.close();
})();
参考文献
- Puppeteer 指南
- Puppeteer 性能优化与执行速度提升
- phantomJs之殇,chrome-headless之生
- Headless Chrome vs PhantomJS Benchmark
- Scraping iframes with Puppeteer