Cheerio 是一个轻量级的 HTML/XML 解析库,专为 Node.js 环境设计。它采用了类似 jQuery 的 API 语法,但运行在服务器端而非浏览器中。
Cheerio = htmlparser2(解析器) + jQuery-like API(接口)
└── 将 HTML 字符串 → DOM 树结构 → 提供 jQuery 方法操作
| 工具 | 环境 | 执行JS | 渲染 | 速度 | 用途 |
|---|---|---|---|---|---|
| Cheerio | Node.js | ❌ | ❌ | ⚡极快 | 静态HTML解析 |
| jsdom | Node.js | ✅ | ✅ | 中等 | 模拟浏览器环境 |
| Puppeteer | Node.js | ✅ | ✅ | 较慢 | 无头浏览器自动化 |
| jQuery | 浏览器 | ✅ | ✅ | 快 | 浏览器DOM操作 |
// 提取文章标题、内容、发布时间等
const title = $('h1.title').text();
const content = $('.article-body').html();
const publishTime = $('.meta time').attr('datetime');
// 分析页面结构
const headings = $('h1, h2, h3').map((i, el) => ({
level: el.tagName,
text: $(el).text(),
id: $(el).attr('id')
})).get();
// 移除不需要的元素
$('script, style, iframe, ads').remove();
// 转换格式
$('img').each((i, img) => {
$(img).attr('src', convertToAbsoluteUrl($(img).attr('src')));
});