puppeteer/puppeteer
摘要
Puppeteer 是一个 JavaScript 库,提供高级 API,通过 DevTools 协议控制 Chrome/Chromium,常用于浏览器自动化、网页抓取和测试。
查看缓存全文
缓存时间: 2026/06/15 00:55
puppeteer/puppeteer
来源:https://github.com/puppeteer/puppeteer
Puppeteer 构建 (https://github.com/puppeteer/puppeteer/actions/workflows/ci.yml)
npm puppeteer 包 (https://npmjs.org/package/puppeteer)
Puppeteer 是一个 JavaScript 库,提供高级 API,通过
DevTools 协议 (https://chromedevtools.github.io/devtools-protocol/) 或 WebDriver BiDi (https://pptr.dev/webdriver-bidi) 来
控制 Chrome 或 Firefox。
Puppeteer 默认以无头模式(无可见 UI)运行
开始使用 (https://pptr.dev/docs) | API (https://pptr.dev/api) | 常见问题 (https://pptr.dev/faq) | 参与贡献 (https://pptr.dev/contributing) | 故障排查 (https://pptr.dev/troubleshooting)
安装
npm2yarn
npm i puppeteer
# 安装时下载兼容的 Chrome。
npm i puppeteer-core
# 或者作为库安装,不下载 Chrome。
:::note
现代包管理器(包括 npm(参见 RFC (https://github.com/npm/rfcs/pull/868))、pnpm、Yarn、Bun 和 Deno)默认会阻止依赖安装脚本。如果安装脚本被阻止,Puppeteer 在安装期间将不会下载浏览器,从而导致运行时错误。安装后,你可以手动下载所需的浏览器,运行:
npm2yarn
npx puppeteer browsers install
或者,你可以配置包管理器以允许安装脚本运行(例如,在 npm 中,将 "puppeteer" 添加到 package.json 的 "allowScripts" 中)。
:::
MCP 安装
chrome-devtools-mcp (https://github.com/ChromeDevTools/chrome-devtools-mcp),一个基于 Puppeteer 的 MCP 服务器,用于浏览器自动化和调试。
Puppeteer 还支持实验性的 WebMCP (https://pptr.dev/guides/webmcp) API。
示例
import puppeteer from 'puppeteer';
// 或者 import puppeteer from 'puppeteer-core';
// 启动浏览器并打开一个新的空白页面。
const browser = await puppeteer.launch();
const page = await browser.newPage();
// 将页面导航到指定 URL。
await page.goto('https://developer.chrome.com/');
// 设置屏幕尺寸。
await page.setViewport({width: 1080, height: 1024});
// 使用键盘打开搜索菜单。
await page.keyboard.press('/');
// 通过可访问的输入名称在搜索框中输入内容。
await page.locator('::-p-aria(Search)').fill('automate beyond recorder');
// 等待并点击第一个结果。
await page.locator('.devsite-result-item-link').click();
// 通过唯一字符串定位完整标题。
const textSelector = await page
.locator('::-p-text(Customize and automate)')
.waitHandle();
const fullTitle = await textSelector?.evaluate(el => el.textContent);
// 打印完整标题。
console.log('The title of this blog post is "%s".', fullTitle);
await browser.close();
相似文章
@FakeMaidenMaker: Puppeteer 能让程序自己打开浏览器,像人一样点鼠标、输文字、抓页面内容,干活根本不用你盯着。 GitHub 上有 95k Star,是浏览器自动化领域绝对的标杆项目。 GitHub:https://github.com/puppe…
Puppeteer 是一个流行的浏览器自动化 JavaScript 库,支持控制 Chrome 和 Firefox,可用于网页抓取、自动化测试等场景,最近还集成了 MCP 协议以支持 AI 代理直接操控浏览器。
ChromeDevTools/chrome-devtools-mcp
Chrome DevTools MCP 是一个开源的模型上下文协议服务器,允许 AI 编程助手(Gemini、Claude、Cursor、Copilot)控制并检查实时 Chrome 浏览器,用于自动化、调试和性能分析。它将 Chrome DevTools 与 Puppeteer 集成,为 AI 助手提供完整的浏览器检查和自动化能力。
真 Chrome。实时 DOM。MCP 工具。多标签页控制。进度可见。
一款新工具,使 AI 代理能够通过真实的 Chrome 实例浏览网页,支持实时 DOM 访问、MCP 工具及多标签页控制。
CloakHQ/CloakBrowser
CloakBrowser是一个开源的隐身Chromium浏览器,通过49个C++源码级别的补丁通过机器人检测测试,为Python和JavaScript提供Playwright和Puppeteer的直接替代品。
@lightpanda_io: 介绍:Lightpanda Agent + PandaScript 四年前我们说浏览器自动化已崩,要重写整个...
Lightpanda Agent 和 PandaScript 通过在构建阶段使用 LLM 将普通英语转化为可执行脚本,实现了浏览器自动化,消除了运行时调用 LLM 以及对 Playwright 或 Puppeteer 的依赖。