HTML(超文本标记语言)是一种用于创建网页的标记语言,能让开发者构建内容丰富、视觉吸引力强的页面布局。然而,HTML 文件通常包含大量标签,若仅需获取主要内容,这些标签会使其难以阅读。通过 Python 将 HTML 转换为文本,可轻松解决这一问题。与原始 HTML 不同,转换后的文本文件会剥离所有不必要的标记,仅保留干净易读的内容,更便于存储、分析或进一步处理。
主要内容:
安装 HTML 转文本 Python 库
推荐使用 Spire.Doc for Python 实现转换。该 Python Word 库不仅是轻量高效的 HTML 转文本工具,还支持几乎所有 Word 操作(如创建、内容编辑等),兼容性强、上手简单。
通过 pip 命令安装(推荐)
打开终端 / 命令行,执行以下命令即可自动完成安装:
pip install spire.doc
Python 将 HTML 文件转换为文本
借助 Spire.Doc for Python,仅需 3 个简单步骤即可将本地 HTML 文件转换为纯文本:创建 Document 对象 → 加载 HTML 文件 → 保存为 TXT 格式。整个过程简洁高效,新手也能轻松上手!下面详细介绍代码实现:
代码示例 — HTML 文件转 TXT 文本文件
from spire.doc import *
from spire.doc.common import *
# 打开 HTML 文件
document = Document()
document.LoadFromFile("sample.html.html", FileFormat.Html, XHTMLValidationType.none)
# 保存为文本文件
document.SaveToFile("HTML转文本.txt", FileFormat.Txt)
document.Close()
转换效果预览(源文件 vs 输出文件):

请注意:若 HTML 文件包含表格,输出的文本文件将仅保留表格中的数据,无法保留原始表格格式。若希望移除标记的同时保留特定样式,建议先将 HTML 转换为 Word 文档,这样可保留标题、表格等格式,让内容更易于编辑和使用。
Python 将 HTML 字符串转换为文本
如果仅需提取网页部分内容(如爬取的 HTML 片段),可直接将 HTML 字符串转换为文本,无需加载完整 HTML 文件,更灵活高效。
Spire.Doc 转换 HTML 字符串到文本文件的实现步骤:
- 直接输入 HTML 字符串或从本地文件读取;
- 创建
Document对象并添加节(Section)和段落(Paragraph); - 使用
Paragraph.AppendHTML()方法将 HTML 字符串插入段落; - 通过
Document.SaveToFile()方法将文档保存为 .txt 文件。
代码示例 — HTML 字符串转 TXT 文本文件
from spire.doc import *
from spire.doc.common import *
# 获取 HTML 字符串(可注释下方代码,取消注释读取本地文件的逻辑)
# with open(inputFile) as fp:
# html = fp.read()
# 定义 HTML 字符串
html = """
<html>
<body>
<h1>示例HTML内容</h1>
<p>这是一个包含<strong>粗体</strong>和<em>斜体</em>文本的段落。</p>
<p>另一行带有<a href='https://example.com'>链接</a>。</p>
<ul>
<li>列表项1</li>
<li>列表项2(带有<em>斜体</em>文本)</li>
</ul>
<p>特殊字符:© & ®</p>
</body>
</html>
"""
# 创建新文档
document = Document()
section = document.AddSection()
# 将 HTML 字符串插入段落
section.AddParagraph().AppendHTML(html)
# 保存为 TXT 文件
document.SaveToFile("HTML字符串转文本.txt", FileFormat.Txt)
document.Close()
转换后的 TXT 文件预览:

总结
借助 Spire.Doc for Python,仅需几行代码即可完成 HTML 文件 / 字符串到纯文本的转换,操作简单、效率高,且能适配大多数实际场景。若需探索更多功能,可申请 30 天免费试用许可,解锁全部功能。
无论是数据分析、内容提取还是文档处理,HTML 转文本都是高频需求 — 掌握这一技巧,能大幅提升 Python 数据处理的灵活性和效率!
常见问题解答
问题1:如何批量转换多个 HTML 文件为纯文本文件?
答:可通过遍历文件夹内的 HTML 文件,循环调用 Spire.Doc 的转换逻辑实现批量处理,核心是结合os模块遍历文件,示例代码如下:
from spire.doc import *
from spire.doc.common import *
import os
# 定义输入/输出文件夹路径
input_folder = "./html_files"
output_folder = "./txt_files"
# 确保输出文件夹存在
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历输入文件夹下所有HTML文件
for filename in os.listdir(input_folder):
if filename.endswith(".html") or filename.endswith(".htm"):
# 拼接文件路径
input_path = os.path.join(input_folder, filename)
# 生成输出文件名(替换后缀为txt)
output_filename = os.path.splitext(filename)[0] + ".txt"
output_path = os.path.join(output_folder, output_filename)
# 执行转换逻辑
document = Document()
document.LoadFromFile(input_path, FileFormat.Html, XHTMLValidationType.none)
document.SaveToFile(output_path, FileFormat.Txt)
print(f"成功转换:{filename} → {output_filename}")
document.Close()
问题2:Spire.Doc 能否处理格式错误的 HTML?
答:可以。Spire.Doc 内置了对格式错误 HTML 的容错能力,但需要禁用严格验证以确保正确解析,即加载 HTML 文件时,使用 XHTMLValidationType.none 跳过严格的 XHTML 检查:
问题3:转换包含图片、视频、音频标签的 HTML,会如何处理这些媒体标签?
答:Spire.Doc for Python 仅处理 HTML 中的文本内容,图片(<img>)、视频(<video>)、音频(<audio>)等媒体标签会被直接剥离,不会在文本中保留标签本身或媒体文件相关信息。







