当前位置: 首页 > news >正文

Python 将 HTML 转换为纯文本 TXT (HTML 文本提取) - 实践

1. 引言

在数据处理、内容提取、网页归档等任务中,经常需要将 HTML 转换为纯文本 TXT。常见需求包括去除 HTML 标签,保留文本内容,保留段落、列表等基本结构。

本文将介绍如何用 Python 和 Free Spire.Doc 库完成 HTML 到 TXT 的转换。


2. 转换原理

HTML 转 TXT 的本质是解析 HTML 文档对象模型(DOM),提取其中的文本节点,再按需要的格式输出。
常用方法有两类:

  1. 纯解析器(如 BeautifulSouplxml):快速、轻量,但需要自己处理换行和缩进。
  2. 文档模型类库(如 Free Spire.Doc):加载 HTML 到文档对象,再导出为 TXT,结构保留更好。

3. 环境准备

安装 Free Spire.Doc for Python:

pip install Spire.Doc.free

注意点击查看免费版的限制


4. 基本实现

4.1 HTML 文件 → TXT 文件

下面是一个将 HTML 文件转换为 TXT 文本的简单示例:

from spire.doc import *
from spire.doc.common import *
# 加载HTML文件
document = Document()
document.LoadFromFile("E:\input.html", FileFormat.Html, XHTMLValidationType.none)
# 另存为TXT文件
document.SaveToFile("Html文件转TXT.txt", FileFormat.Txt)
document.Close()

核心代码:

  • LoadFromFile():加载 HTML 文件。FileFormat.Html 表示文件格式为 HTML。
  • SaveToFile():将文档保存为 TXT 格式。FileFormat.Txt 表示保存为纯文本。

输出结果:
HTML文件转文本

4.2 HTML 字符串 → TXT 文件

若 HTML 内容已在内存中(如接口返回、爬虫抓取结果),可使用该方法:

from spire.doc import *
from spire.doc.common import *
# 指定HTML字符串
sample_html = """
<html>
<head><title>示例页面</title></head><body><h1>欢迎来到我的网站</h1><p>这是一个段落文本。</p><ul><li>项目1</li><li>项目2</li><li>项目3</li></ul>
</body>
</html>
"""
# 创建文档
document = Document()
# 在段落中插入字符串
section = document.AddSection()
section.AddParagraph().AppendHTML(sample_html)
# 另存为TXT
document.SaveToFile("Html字符串转TXT.txt", FileFormat.Txt)
document.Close()

输出结果:
HTML字符串转文本


5. 注意事项

  • 格式保留:转换后的 TXT 会保留 HTML 的段落结构(换行、列表等),但不保留颜色、字体等样式。
  • 性能:对于超大型 HTML 文件,建议分段处理以避免内存占用过高。
  • 复杂 HTML:对于包含大量 JavaScript、CSS 或复杂布局的 HTML,建议先用对文件进行预处理再转换。

使用 Free Spire.Doc for Python 转换 HTML 到 TXT 非常方便,只需几行代码即可完成,并且能够较好地保留原有的文本结构。相比正则表达式或简单的标签剥离方法,这种方式更稳定可靠。

该免费库还支持将HTML导出为Word、PDF、图片等,具体示例可参考中文教程。

http://www.zskr.cn/news/13613.html

相关文章:

  • 【Android之路】界面和状态交互 - 详解
  • ubi文件系统的 制作 + 挂载
  • 元推理用无限嵌套,取代目前弱ai的暴力无限试错
  • java 语法基础课后作业
  • 完整教程:Nginx HTTPS 深入实战 配置、性能与排查全流程(Nginx https
  • 20243907张驰
  • ubuntu系统挂载硬盘
  • RAG实践:一文掌握大模型RAG过程
  • 完整教程:上下文工程驱动智能体向 透明化推理日志
  • 深入解析:@scqilin/phone-ui 手机外观组件库
  • ES 是否有类似mysql explain的语句诊断用法
  • Codeforces 补题笔记
  • 【RabbitMQ】消息可靠性保障
  • 变电站、开闭所、环网柜、配电站
  • 聚焦 AI 应用基础设施,云栖大会 Serverless AI 全回顾
  • Redis HASH+RediSearch 设计自定义索引
  • Altium Designer 25.8.1 最新版安装指南
  • 数据结构篇
  • 2025 年二氧化氯发生器厂家最新权威推荐排行榜:TOP 级企业技术实力与成本优势解析,助力用户精准选购电解法二氧化氯发生器/电解食盐二氧化氯发生器厂家推荐
  • winform 烦人的键盘事件 再遇上 chart 上下左右 失灵
  • 2025 年铝板品牌最新权威推荐排行榜:1-7 系主流铝板企业 TOP5 精选及工艺品质测评指南1060/1100/3003/3004/5052/6061/6063/6082铝板厂家推荐
  • 2025 防撞软包生产厂家权威推荐排行榜:E0 级环保 + B1 级阻燃,公检法 / 幼儿园场景最新优选厂家谈话室/留置病房/教育中心/体育馆防撞软包厂家推荐
  • 中位数定理
  • 计算机网络---网络层 - 详解
  • 国标GB28181视频平台EasyGBS:强大的视频监控与一站式视频服务解决方案
  • 题解:P13507 [OOI 2024] Three Arrays
  • 2025 年最新编织袋生产厂家权威推荐排行榜:聚焦 TOP5 优质企业,助力企业精准甄选可靠合作伙伴牛皮纸/塑料/PP彩膜/化工/化肥编织袋厂家推荐
  • # PostgreSQL高可用架构深度解析:从单机到分布式的演进之路
  • Foojay 播客 #71:与 James Gosling 一起庆祝 Java 诞生 30 周年
  • win 系统安装