JavaScript API for Chrome and Firefox

94.8k stars | TypeScript | Apache 2.0 | Google | https://pptr.dev

Google 出品的高层 Chrome/Firefox 控制库,通过 DevTools Protocol 或 WebDriver BiDi 控制浏览器,支持无头(headless)模式。

核心定位

Puppeteer 是浏览器自动化的底层库,提供精细的 CDP(Chrome DevTools Protocol)访问能力,适合构建爬虫、截图服务、PDF 生成、测试等工具。与 Cypress/Playwright 相比,它更靠近底层,灵活性更高但开箱即用程度低。

核心特性

  • Chrome/Firefox 支持:内置对应版本浏览器,安装即用(npm i puppeteer)
  • DevTools Protocol:直接访问 CDP,性能分析、网络拦截、JS 覆盖率等
  • WebDriver BiDi:新一代跨浏览器协议支持(实验性)
  • MCP 集成:官方推荐 chrome-devtools-mcp,支持 AI Agent 驱动浏览器
  • WebMCP:实验性 WebMCP API,浏览器内嵌 MCP 支持

安装

npm i puppeteer        # 自动下载兼容版 Chrome
npm i puppeteer-core   # 不下载 Chrome,作为库使用

基本用法

import puppeteer from 'puppeteer';
 
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const title = await page.title();
await browser.close();

与 Playwright 的关系

Playwright 是微软从 Puppeteer 团队分叉并重写的工程,两者 API 相似但 Playwright 在多浏览器支持、并行测试和可靠性方面做了更多工作。Puppeteer 的优势在于 CDP 的原生访问深度,对 Chrome 特有能力(如性能分析、内存快照)支持更好。

AI Agent 相关

  • 官方推荐 chrome-devtools-mcp 作为 MCP Server
  • 支持 AI Agent 通过 MCP 协议控制浏览器进行自动化操作

相关页面

  • cypress — E2E + 组件测试框架,基于浏览器内运行
  • scrapling — 自适应 Web 爬虫,Puppeteer 直接替换方案
  • cloakbrowser — 隐身 Chromium,Puppeteer/Playwright 直接替换