Node.js NPM 中的 Request 和 Cheerio 是什么?

2025年5月9日 | 阅读 4 分钟

RequestCheerio 是两个流行的 Node.js 模块,常一起用于 Web 数据处理和 Web 抓取。在本文中,我们将结合它们的关键特性、安装、语法和示例,讨论 Node.js NPM 中的 Request 和 Cheerio。

Node.js NPM 中的 Request 是什么?

Request 是一个 Node.js 包,用于向服务器发送 HTTP 请求。它支持 GET、POST 和其他 HTTP 方法,简化了从网站或 API 检索数据。由于它能控制流、Cookie 和重定向等功能,常用于 Web 抓取和 API 集成。尽管 Request 易于使用,但自 2020 年以来已被弃用;现在鼓励更现代的项目使用 Axios、Got 和 node-fetch。过去,它因易用性和灵活性而广受欢迎,尤其是在与 Cheerio 等解析工具结合用于 HTML 内容抓取时。

主要特点

Node.js NPM 中的 Request 的一些关键特性如下:

  • 基本 HTTP 任务 API,包括 GET、POST、PUT 和 DELETE。
  • 与 request-promise 库结合使用的 Promises。
  • 它控制流、重定向和 Cookie。
  • 它适用于需要检索 HTML 内容的 Web 抓取活动。

安装

在环境中需要 Request

语法

它具有以下语法:

包含 Request 的示例

Node.js NPM 中的 Cheerio 是什么?

Cheerio 是一个快速高效的 Node.js 工具,用于处理 HTML 或 XML。它受到 jQuery 的启发,允许开发者使用流行的 DOM 遍历和操作技术从网页中检索数据。Cheerio 不直接处理 HTTP 查询,但常使用 Request 或 Axios 等框架来处理获取的 HTML。它使得高效地从 HTML 中提取链接、标题和结构化数据变得更容易。Cheerio 因其速度和易用性,成为 Node.js 环境中与服务器端 DOM 交互的流行工具,因此非常适合创建 Web 抓取器。

主要特点

Node.js NPM 中的 Cheerio 的一些关键特性如下:

  • 它使用 jQuery 的 API 来操作 HTML。
  • 轻巧高效。
  • 通过 HTML 或 XML 解析快速收集数据。
  • 易于与 HTTP 请求库结合使用。

安装

在环境中需要 Cheerio

语法

它具有以下语法:

示例

包含 Request 和 Cheerio 用于 Web 抓取的示例语法

示例代码

输出

 
Page Title: Example Domain
Heading 1: Example Domain
Link 1: https://www.example.com/domains/example   

Axios:Request 的现代替代品

输出

 
Page Title: Example Domain
Heading 1: Example Domain
Link 1: https://www.example.com/domains/example   

说明

包含的代码展示了如何在 Node.js 中结合使用 Request 或其更现代的替代品 Axios 与 Cheerio 进行 Web 抓取。该脚本首先提供要抓取的目的地 URL (https://example.com)。为了获取页面的 HTML 内容,它使用 Request(或较新版本中的 Axios)发送 HTTP GET 请求。收到响应后,Cheerio 库会将 HTML 内容加载到虚拟 DOM 中,允许脚本使用类似于 jQuery 的选择器来提取特定元素。在整个示例中,该脚本通过使用 Cheerio 的 each 方法遍历 DOM 树来收集并记录页面标题(<title> 元素)、所有链接(带有 href 属性的 <a> 标签)以及所有标题(<h1> 标签)。