跳转至

以下内容基本上是 AI 生成的,我还没校对,可能质量不高

html2text2

Repo   ·   PyPI   ·   Docs

html2text 是一个将 HTML 转换为干净、可读的 Markdown 文本的 Python 库。html2text2 是对经典的 html2text 库的复活和现代化维护版本。

  • 因为官方欠维护 #418,所以我 fork 了并发布到了 PyPI 上作为 html2text2
  • 那段时间写了一篇 《一言不合就 fork》
  • 用 Vitepress 生成了文档。后来在 dl-a2t 中也是用的 vitepress(当然 python 项目用 vitepress 就只能纯粹写文档了,做不了别的)

Features

  • HTML to Markdown: 将网页内容转换为标准的 Markdown 格式。
  • Clean Output: 自动去除多余的标签和样式,只保留内容结构。
  • Configurable: 支持忽略链接、图片,或者自定义转换规则。

Implementation

它通过解析 HTML DOM 树,遍历每个节点,并根据节点的类型(如 <h1>, p, a, ul)生成对应的 Markdown 标记。

My Clever Bits(我的巧思)

原版的 html2text 已经很久没有维护了。我接手后,主要做的是 Modernization

我在这个 fork 里主要做的是重新打包和继续维护:补现代 Python 的发布元数据、把它作为 html2text2 发布到 PyPI,并延续原项目的使用方式。

Deep Insight(深入洞见)

将 HTML 转换为 Markdown 听起来简单,但处理 Whitespace(空白字符)是最大的难点。

HTML 对空白字符的处理规则非常复杂(多个空格折叠为一个,块级元素前后的换行等)。html2text 这类库最难的部分之一就在这里;这个 fork 继承了原项目这套成熟逻辑,而不是去重写一遍 HTML 到 Markdown 的核心算法。

这对于将网页内容喂给 LLM 非常重要,因为干净的 Markdown 能显著减少 Token 消耗并提高模型的理解能力。

  • Python Readability: 先用 Readability 提取正文,再用 Html2Text 转为 Markdown,是处理网页数据的黄金搭档。