提取html纯文本需区分手动与自动方法:手动用浏览器渲染后复制粘贴可快速处理1~5个文件;批量处理则须用python+beautifulsoup解析html并调用get_text(),注意编码检测及mhtml需先解包。

直接保存 HTML 源码为 .txt 文件,只会得到带标签的原始代码,不是你想要的“纯文本内容”。真正需要的是提取渲染后可见的文字——也就是去掉 、<p></p>、<a></a> 等所有标签,只留可读段落、标题和换行。这一步不能靠简单改后缀解决。
用浏览器复制粘贴是最快速的手动方式
适用于单个或少量 HTM/HTML 文件(比如 1~5 个),且你只需要提取当前页面上“眼睛看到的内容”:
- 双击打开
xxx.html文件,让浏览器渲染出页面 - 按
Ctrl+A全选,再Ctrl+C复制(此时复制的是渲染后的文本,不是源码) - 打开记事本或 Notepad++,
Ctrl+V粘贴 —— 浏览器会自动剥离大部分标签,只留文字和基础换行 - 检查是否残留
http://...链接文本(如超链接文字后跟着 URL),手动删掉 - “另存为”时,文件名写成
xxx.txt,编码选UTF-8,避免中文乱码
用 Python + BeautifulSoup 批量提取纯文本(推荐)
当你有几十个 .html、.htm 甚至 .mhtml 文件要处理,手动复制效率低、易漏、命名不一致。这时候必须用脚本自动化:
- 安装库:
pip install beautifulsoup4 - 核心逻辑是:读取 HTML 文件 → 用
BeautifulSoup(html, 'html.parser')解析 → 调用soup.get_text()提取纯文本 -
get_text()默认保留段落间换行,但会把<table>、<code><script></script>、<style></style>内容全过滤掉,符合归档需求 - 注意:如果原 HTML 用了非 UTF-8 编码(比如 GBK),
open(..., encoding='utf-8')会报UnicodeDecodeError,得先用chardet探测编码 - 示例片段:
from bs4 import BeautifulSoup
with open('page.html', 'r', encoding='utf-8') as f:
soup = BeautifulSoup(f, 'html.parser')
text = soup.get_text()
with open('page.txt', 'w', encoding='utf-8') as f:
f.write(text)
别把“另存为 TXT”和“提取纯文本”混淆
很多人在浏览器里右键 → “另存为”,然后把保存类型强行改成 Text Files (*.txt),结果得到的是空文件或乱码。这是因为:
- 浏览器“另存为”功能不支持直接导出纯文本;它只支持
Webpage, HTML Only或Webpage, Complete - 你看到的“另存为 TXT”选项,其实是系统级的文件类型欺骗,实际没做任何内容转换
- 用记事本打开一个
.html文件再“另存为.txt”,也只会保存源码,不是渲染后文本
真正批量、可靠、可复现的 HTML → TXT 转换,依赖的是内容解析(如 BeautifulSoup.get_text())而不是文件系统操作。最容易被忽略的一点是:mhtml 文件不能直接用 BeautifulSoup 读取,得先解包或转成标准 HTML,否则会解析失败。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











