📚 一、基本概念

1. 是什么

Cheerio 是一个轻量级的 HTML/XML 解析库,专为 Node.js 环境设计。它采用了类似 jQuery 的 API 语法,但运行在服务器端而非浏览器中。

2. 核心特点

3. 底层架构

Cheerio = htmlparser2(解析器) + jQuery-like API(接口)
└── 将 HTML 字符串 → DOM 树结构 → 提供 jQuery 方法操作

4. 与相关技术的对比

工具 环境 执行JS 渲染 速度 用途
Cheerio Node.js ❌ ❌ ⚡极快 静态HTML解析
jsdom Node.js ✅ ✅ 中等 模拟浏览器环境
Puppeteer Node.js ✅ ✅ 较慢 无头浏览器自动化
jQuery 浏览器 ✅ ✅ 快 浏览器DOM操作

🛠 二、能做什么

1. 数据提取(主要用途)

// 提取文章标题、内容、发布时间等
const title = $('h1.title').text();
const content = $('.article-body').html();
const publishTime = $('.meta time').attr('datetime');

2. 网页内容分析

// 分析页面结构
const headings = $('h1, h2, h3').map((i, el) => ({
  level: el.tagName,
  text: $(el).text(),
  id: $(el).attr('id')
})).get();

3. HTML 清理与转换

// 移除不需要的元素
$('script, style, iframe, ads').remove();

// 转换格式
$('img').each((i, img) => {
  $(img).attr('src', convertToAbsoluteUrl($(img).attr('src')));
});

4. 模板处理