cparse
Version:
一个基于 Cheerio 的 HTML 解析和数据提取工具库
95 lines (76 loc) • 2.32 kB
JavaScript
/**
* 基本用法示例
* 演示如何使用 cparse 进行基本的 HTML 解析和数据提取
*/
const { loadCheerio, parse } = require('../index.js');
// 示例 HTML
const html = `
<!DOCTYPE html>
<html>
<head>
<title>示例页面</title>
</head>
<body>
<div class="container">
<h1 class="title">欢迎使用 cparse</h1>
<p class="description">一个强大的 HTML 解析工具</p>
<ul class="features">
<li>简单易用</li>
<li>功能强大</li>
<li>高性能</li>
</ul>
<div class="stats">
<span class="downloads">1000+</span>
<span class="stars">50</span>
<span class="version">1.0.6</span>
</div>
<a href="/docs" class="link">查看文档</a>
</div>
</body>
</html>
`;
console.log('=== 基本用法示例 ===\n');
// 1. 加载 HTML
const $ = loadCheerio(html);
console.log('1. 加载 HTML 完成');
// 2. 提取单个元素
const title = parse('.title', $);
console.log('2. 页面标题:', title);
const description = parse('.description', $);
console.log(' 页面描述:', description);
// 3. 提取属性
const linkHref = parse('.link@href', $);
console.log('3. 链接地址:', linkHref);
// 4. 提取所有匹配元素
const features = parse('[.features li]', $);
console.log('4. 功能列表:', features);
// 5. 使用过滤器
const downloads = parse('.downloads | int', $);
console.log('5. 下载次数:', downloads, '(类型:', typeof downloads, ')');
const stars = parse('.stars | int', $);
console.log(' 星标数量:', stars, '(类型:', typeof stars, ')');
// 6. 提取结构化数据
const pageInfo = parse({
title: '.title',
description: '.description',
features: '[.features li]',
stats: {
downloads: '.downloads | int',
stars: '.stars | int',
version: '.version'
},
link: '.link@href'
}, $);
console.log('\n6. 结构化数据:');
console.log(JSON.stringify(pageInfo, null, 2));
// 7. 使用分割器处理列表
const statsArray = parse([
'[.stats span]',
{
value: 'text',
class: '@class'
}
], $);
console.log('\n7. 统计数据数组:');
console.log(JSON.stringify(statsArray, null, 2));
console.log('\n=== 示例完成 ===');