最近在做网页正文清洗时,我遇到一个很常见的问题:

很多网页 HTML 里面,真正有价值的正文只占很小一部分,剩下的大量内容其实是导航栏、广告、评论区、相关推荐、分享按钮、登录弹窗和 footer。

如果直接把整页 HTML 丢给 AI 摘要、RAG 知识库或者 AI Agent,会出现两个问题:

第一,浪费 token。

第二,噪声内容会污染摘要和检索结果。

所以我做了一个小工具:Extract HTML Main

项目地址:

GitHub - qli917/html_skill: Extract readable main content from messy HTML and URLs for AI agents, RAG pipelines, summarization, and scraping cleanup. · GitHub

它解决什么问题?

这个工具的目标很简单:

从杂乱 HTML、本地保存网页和 URL 中提取真正的正文内容。

也就是尽量只保留读者真正想看的内容,把导航、广告、评论、推荐、footer 等页面噪声去掉。

适合这些场景:

  • AI 摘要前的数据清洗

  • RAG 知识库网页正文提取

  • 爬虫正文清洗

  • AI Agent 自动处理网页内容

  • 批量网页转 Markdown

快速开始

安装依赖:

bash install.sh

运行示例:

python3 scripts/extract_html_main.py examples/messy_article.html --format markdown

从本地 HTML 提取正文:

python3 scripts/extract_html_main.py input.html --format markdown

从 URL 提取正文:

python3 scripts/extract_html_main.py https://example.com/article --format markdown

如果要处理动态网页,可以安装 Playwright / Chromium 渲染能力:

bash install.sh --with-browser

支持哪些能力?

目前支持:

  • raw HTML

  • 本地 HTML 文件

  • URL

  • Playwright / Chromium 动态页面渲染

  • 静态 HTTP fallback

  • 手动 CSS selector

  • selector 缓存

  • text / markdown / json 输出

  • 原 HTML vs 提取正文 HTML 对比页

如果你已经知道某个网站的正文容器,比如 .article-body,也可以手动指定:

python3 scripts/extract_html_main.py input.html --selector ".article-body" --format markdown

核心思路

这个工具的基本判断逻辑是:

网页正文通常信息密度更高;噪声区通常链接密度更高、文本更短,并且 class / id 命名更偏向 nav、comment、ad、related、footer 等。

所以它会大致做这几步:

  1. 获取尽量完整的 DOM。

  2. 移除明显噪声节点,比如 script、style、nav、header、footer、aside、form、隐藏节点、广告、评论和分享区域。

  3. 从 article、main、role=main、正文命名节点和大块布局节点中生成候选正文容器。

  4. 根据文本长度、段落数量、标点密度、语义标签、链接密度和噪声命名打分。

  5. 选择最高分节点。

  6. 清理重复文本和空白。

  7. 输出 text、markdown 或 json。

为什么这个东西有用?

因为现在很多 AI 应用都会处理网页内容。

但网页不是干净文本,网页里有大量模板信息。如果不先清洗,后面无论是摘要、RAG 入库,还是 Agent 分析网页,效果都会被噪声拖累。

所以正文提取不是一个小细节,而是 AI 数据处理链路里的基础步骤。

项目地址

GitHub:

GitHub - qli917/html_skill: Extract readable main content from messy HTML and URLs for AI agents, RAG pipelines, summarization, and scraping cleanup. · GitHub

欢迎试用、提 issue、点 star。

如果你也在做 AI 摘要、RAG、网页采集或者 Agent 自动化处理网页内容,这个项目应该会有一些参考价值。

 

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐