Cheerio DOM提取管道
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/cheerio-dom-extraction-pipeline。
技能介绍
要解决的问题
在服务器端处理 HTML 页面时,开发者常面临三个痛点:一是Cheerio虽能快速解析 DOM,但手动编写选择器链容易散落在代码各处,缺乏统一管理;二是提取后的 JSON 数据结构不固定,下游消费时容易因字段缺失或格式错误导致异常;三是面对分页列表时,需反复编写"请求下一页→重新解析→合并结果"的逻辑,代码重复度高。这些问题在数据采集、价格监控等场景中尤为突出。
核心工作方式
该技能基于Cheerio构建可配置的提取管道,核心能力包括:
- CSS 选择器链:通过声明式配置定义元素提取路径,支持父子、兄弟节点的层级选择,避免手写
.find()和.attr()的冗余代码。 - JSONPath 输出映射:将提取到的原始节点映射为自定义 JSON 结构,支持嵌套字段和数组映射,便于直接对接下游 API 或存储。
- 分页跟踪:内置分页逻辑,可通过配置选择器自动发现"下一页"链接,递归处理多页数据,无需手动编写循环请求。
- Ajv 模式验证:提取完成后,使用
Ajv对输出 JSON 进行模式校验,确保字段类型、必填项符合预期,提前拦截数据质量问题。
适用边界与注意事项
该技能适用于静态 HTML 页面的结构化提取,对依赖 JavaScript 动态渲染的内容(如单页应用)支持有限,需结合无头浏览器预处理。分页跟踪仅支持基于 URL 的分页(如?page=2),对通过 XHR 加载的分页数据需自行扩展请求逻辑。此外,由于上游项目缺乏自动安装说明,在敏感环境中使用前建议审查源码,避免供应链风险。
使用场景
- 运营人员需从新闻列表页提取标题、链接和发布时间,生成结构化JSON供CMS系统使用。
- 后端工程师在服务器端解析商品详情页,通过配置CSS选择器链提取价格、库存和规格参数。
- 数据采集团队需要从分页搜索结果中批量提取条目,自动跟踪下一页链接并合并输出。
- 数据团队在提取后需确保字段完整性,使用模式验证避免下游API因字段缺失而报错。
适合人员
- 后端工程师,需要从静态HTML页面提取结构化数据并输出JSON供API消费。
- 数据采集人员,需批量处理分页列表页,自动跟踪分页并合并结果。
- 爬虫开发者,构建服务器端数据采集管道,处理静态HTML解析和数据验证。
- 数据分析师,将非结构化HTML转换为可分析的JSON格式,供后续处理。