如何在 Node.js 中使用 Puppeteer

2025年2月28日 | 阅读 4 分钟

Node.js 中的一个名为 Puppeteer 的库提供了一个高级 API 来管理无头 Chrome 或 Chromium 浏览器。它主要用于各种任务,包括自动化测试、网页抓取和屏幕截图。尽管 Puppeteer 通常在无头模式下运行,但也可以将其设置为在完整浏览器(非无头)模式下运行。在使用 Puppeteer 之前,必须先使用 npm install puppeteer 安装它。然后,创建一个脚本并包含 Puppeteer。例如,要打开浏览器标签页,请使用 browser.newPage() 函数;要导航,请使用 page.goto(url);并启动 puppeteer:page.screenshot({ path: 'example.png' }) 来捕获屏幕截图;使用 browser.close() 来结束会话。Puppeteer 是创建 PDF、自动化测试和网页抓取的最佳工具。有关此精彩工具的更多详细信息,请参阅 Puppeteer 文档。

安装 Puppeteer

如果您想在 node.js 中安装 puppeteer,请先右键单击您选择的位置,然后选择 “新建文件夹” 来创建您最初要进行操作的目录。其他选项包括使用终端命令 mkdir dir-name。

  • 设置 Puppeteer:首先,必须使用 npm 安装 puppeteer 函数。您可以使用以下命令在终端中完成此操作
  • 为您的项目创建一个目录:现在,如果您还没有 Node.js 项目,请创建一个新目录并初始化它
  • 在您的项目安装中使用 Puppeteer:最后,在您的项目目录中安装 Puppeteer

示例 1

让我们举一个例子来说明 puppeteer 在 Node.js 中的用法。

文件名:Extract-Text.js

输出

 
Running: node extract-text.js
Extracted Text: Example Domain   

说明

  • 首先,您需要评估此页面的功能。evaluate() 函数允许您在页面上下文中运行代码,从而可以处理和检索文档对象模型 (DOM) 中的数据。
  • 只需将 “h1” 替换为适当的 CSS 选择器,即可识别您要从中提取文本的元素。
  • 信息记录:使用 console.log() 函数将提取的文本记录到控制台。

示例 2

让我们再举一个例子来说明 puppeteer 在 Node.js 中的用法。

文件名:Submit.js

输出

 
Running: node form-submit.js
Confirmation Message: Thank you for your submission!   

说明

  • 填写表单:您可以使用此示例将文本输入到表单字段中。process type(text, selector)。在表单字段中,应使用实际的 CSS 选择器而不是 #name 和 #email。
  • 触发表单提交:该页面用于指定 submit button.selector click 方法。提交表单后,All() 确保脚本等待导航完成。
  • 达到目标:页面加载完成后,脚本会利用它来记录确认加载。calculate()。

结论

总之,Node.js 库 puppeteer 非常灵活,它允许开发人员控制无头 Chrome 或 Chromium 浏览器。此功能使其适用于多种任务,例如以编程方式与网站交互、自动化测试、网页抓取等等。您只需遵循设置说明(包括安装 Puppeteer、创建项目目录和编写脚本),即可轻松导航网页,包括提取数据、填写表单和截屏。这些示例说明了使用 Puppeteer 从简单的文本内容提取或表单提交任务到自动化复杂的 Web 交互是多么轻松。