Puppeteer for JavaScript (Node.js): 完整指南及示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程
\n

Puppeteer for JavaScript (Node.js): 完整指南及示例

\n\n
\n

1. 什么是 Puppeteer 及其用途

\n

Puppeteer 是一个 Node.js 库,它通过 DevTools 协议提供高级 API 来控制 Chrome(或 Chromium)浏览器。默认情况下,Puppeteer 以无头模式运行(无图形界面),这使其成为在服务器端自动化 Web 任务的理想工具。不过,在需要时,也可以启动带有界面的完整浏览器进行调试。

\n

Puppeteer 的主要使用场景包括:网页抓取(从使用 JavaScript 的动态网站提取数据)、Web 应用程序自动化测试(端到端测试)、生成页面截图和 PDF、模拟用户操作(点击、填写表单、导航),以及 网页性能监控。与简单的 HTTP 请求不同,Puppeteer 会执行页面上的 JavaScript,从而可以获取动态生成的内容。

\n

该库由 Google 团队积极维护,并被数千家公司用于生产环境。Puppeteer 提供对浏览器的完全控制:从管理标签页和拦截网络请求,到模拟移动设备和地理位置。它是一个通用工具,可以替代一套用于处理 Web 内容的实用程序。

\n
\n\n
\n

2. 安装

\n

要通过 npm(Node 包管理器)安装 Puppeteer,请在项目根目录的终端中执行以下命令:

\n
npm install puppeteer
\n

此命令将下载库本身,并自动下载兼容版本的 Chromium(约 300-400 MB)。如果您想使用系统中已安装的 Chrome/Chromium,请安装 puppeteer-core:

\n
npm install puppeteer-core
\n

使用 puppeteer-core 时,您需要在启动时指定浏览器可执行文件的路径。使用该库需要 Node.js 18.0.0 或更高版本(建议使用 LTS 版本)。

\n
\n\n
\n

3. 快速入门 — 最小工作示例

\n

创建一个文件 example.js 并添加以下代码,该代码将截取网页截图:

\n
const puppeteer = require('puppeteer');\n\n(async () => {\n    // 启动浏览器\n    const browser = await puppeteer.launch();\n    // 打开新页面\n    const page = await browser.newPage();\n    // 导航到网站\n    await page.goto('https://example.com');\n    // 截取截图\n    await page.screenshot({ path: 'example.png' });\n    // 关闭浏览器\n    await browser.close();\n})();
\n

使用命令 node example.js 运行脚本。文件夹中将出现一个文件 example.png,其中包含 example.com 页面的截图。这是一个最小但功能完整的浏览器自动化示例。

\n
\n\n
\n

4. 主要方法/函数/类

\n

以下是 Puppeteer 的 8 个关键方法和类,包含描述和代码示例。

\n\n

4.1. puppeteer.launch()

\n

签名: puppeteer.launch([options]) → Promise<Browser>

\n

功能: 启动一个 Chromium/Chrome 浏览器实例。接受一个选项对象(headless、slowMo、args 等)。返回一个 Browser 对象。

\n
const browser = await puppeteer.launch({\n    headless: false, // 显示浏览器\n    slowMo: 100,    // 操作延迟(毫秒)\n    a                    

推荐