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

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

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

开始课程

什么是 Cheerio,为什么需要它?

\n\n

Cheerio 是一个快速、灵活且轻量级的库,用于在 Node.js 服务器端解析 HTML 和 XML。它为开发者提供了强大的类似 jQuery 的语法,用于导航、搜索和操作 DOM 树。如果您曾在浏览器中使用过 jQuery,那么 Cheerio 对您来说将是直观易懂的——Cheerio 实现了 jQuery 的一个子集,并针对服务器端使用进行了适配。

\n\n

Cheerio 的主要使用场景:

\n
    \n
  • 网页抓取 (Web Scraping): 从网页中提取数据(价格、新闻标题、文章内容)。
  • \n
  • 测试: 在单元测试中检查 HTML 模板的结构,而无需真实的浏览器。
  • \n
  • HTML 预处理: 在将 HTML 文档发送给客户端之前,对其进行清理、转换和提取部分内容。
  • \n
  • 解析 RSS/XML 源: 处理 XML 文档,尽管有更专业的 XML 工具。
  • \n
\n\n

与完整的浏览器引擎(例如 Puppeteer 或 Playwright)不同,Cheerio 不会渲染 JavaScript,也不会加载 CSS、图像或外部资源。这使得它极其快速且节省内存。Cheerio 处理的是您通过 HTTP 请求(使用 axios、node-fetch 或内置的 http/https 模块)获得的现成 HTML 字符串。

\n\n

安装 Cheerio

\n\n

通过包管理器 npm(或 yarn)在 Node.js 项目中安装 Cheerio。在项目根目录打开终端并执行:

\n\n
npm install cheerio
\n\n

如果您使用 yarn:

\n\n
yarn add cheerio
\n\n

安装后,您可以将该库导入到您的代码中:

\n\n
const cheerio = require('cheerio');\n// 或用于 ES 模块:\n// import * as cheerio from 'cheerio';
\n\n

请注意:Cheerio 是一个用于 Node.js 的库,不适用于浏览器。如果您需要在客户端解析 HTML,最好使用原生的 DOMParser。

\n\n

快速入门:第一个示例

\n\n

让我们编写一个简单的脚本,加载一个 HTML 字符串,找到其中所有链接,并输出它们的文本和 href 属性。

\n\n
const cheerio = require('cheerio');\n\n// HTML 代码示例(通常您通过 HTTP 请求获取)\nconst html = `\n<html>\n<head><title>示例页面</title></head>\n<body>\n    <h1>欢迎!</h1>\n    <ul>\n        <li><a href="https://example.com">链接 1</a></li>\n        <li><a href="https://google.com">链接 2</a></li>\n        <li class="special"><a href="https://github.com">链接 3</a></li>\n    </ul>\n</body>\n</html>\n`;\n\n// 将 HTML 加载到 Cheerio 中\nconst $ = cheerio.load(html);\n\n// 找到所有 <a> 标签并遍历它们\n$('a').each((index, element) => {\n    const text = $(element).text();       // 标签内的文本\n    const href = $(element).attr('href'); // href 属性的值\n    console.log(`${index + 1}. ${text} - ${href}`);\n});\n\n// 结果:\n// 1. 链接 1 - https://example.com\n// 2. 链接 2 - https://google.com\n// 3. 链接 3 - https://github.com
\n\n

如您所见,语法与 jQuery 非常相似:我们使用 $() 函数来选择元素,然后使用 .text()、.attr()、.each() 等方法来操作它们。

\n\n

Cheerio 的主要方法和函数

\n\n

以下是 Cheerio 的 10 个关键方法的详细解析,包括说明、参数和示例。

\n\n

1. cheerio.load(html, options?)

\n

作用: 加载 HTML 字符串并返回主函数 $,通过它

推荐