以下内容基本上是 AI 生成的,我还没校对,可能质量不高
html2text2¶
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 消耗并提高模型的理解能力。
Related Projects¶
- Python Readability: 先用 Readability 提取正文,再用 Html2Text 转为 Markdown,是处理网页数据的黄金搭档。