Text/Clean

把网页·HTML 源码转换为纯文本

从HTML源码中删除标签、保留段落与换行得到纯文本的方法。讲解删除script和style、解析&等实体、把表格转为制表符的原理,以及与直接从屏幕复制的区别。

手上只有 HTML 源码时——比如博客编辑器的 HTML 视图、邮件模板、CMS 导出文件——有时只想提取正文文字。手动删除标签,很容易残留 & 这样的实体和脚本代码。

基本流水线

内置配方的顺序如下。

  1. 删除 HTML 标签 — 删除标签,把块级边界转为换行,把实体转为字符。
  2. 整理不可见字符·引号 — 把由   转换来的 NBSP(U+00A0)和弯引号整理为普通字符。
  3. 删除首尾空格 — 删除因源码缩进而残留在行首的空格。
  4. 删除空行 — 用“连续空行合并为一行”把段落之间的空白统一为一行。
  5. 整理连续空格·制表符 — 把行内的多个空格缩减为一个。
配方HTML → 纯文本
  1. 删除 HTML 标签
  2. 整理不可见字符·引号
  3. 删除首尾空格
  4. 删除空行
  5. 整理连续空格·制表符
用此配方打开工具

删除标签时处理的内容

  • 注释和可执行代码<!-- --> 注释以及 <script><style><noscript><template> 元素会连同内容一起删除。如果只删标签,JavaScript 或 CSS 代码就会像正文一样残留下来。
  • 块级标签与换行:开启“块级标签·<br> 转为换行”后,会在 <br> 以及 pdivh1~h6litr 等块级元素的边界处换行。开始标签和结束标签都会变成换行,因此会产生空行,三行以上连续的空行会缩减为两行。
  • 表格:单元格的结尾(</td></th>)会转为制表符。把结果粘贴到电子表格中,列就会分开。
  • 实体:开启“解析 &amp; 等实体”后,会把 &amp; &lt; &gt; &quot; &nbsp; &hellip; 这样常用的命名实体以及 &#39; &#x27; 这样的数字实体转换为实际字符。工具不认识的命名实体保持原样。
<h2>公告</h2>
<p>本周维护时间:周六&nbsp;22:00。<br>如有疑问请到 Q&amp;A 版块留言。</p>
<ul><li>周一:服务器</li><li>周三:数据库</li></ul>
<script>track();</script>

上面的源码会被整理成下面这样。

公告

本周维护时间:周六 22:00。
如有疑问请到 Q&A 版块留言。

周一:服务器

周三:数据库

如果不希望列表项之间留有空行,请选择“删除所有空行”来代替连续空行合并。不过这样一来,段落之间的空行也会一起消失。

想保留表格结构时

配方的最后一步“整理连续空格·制表符”默认开启“制表符也合并为空格”,会把表格中的制表符转为空格。删除首尾空格也会删除行首行尾的制表符。如果要把表格当作制表符分隔的数据使用,请关闭“整理连续空格·制表符”的“制表符也合并为空格”,并关闭删除首尾空格这一步。

与从浏览器屏幕复制的区别

在网页上用鼠标拖选复制,与用本工具整理 HTML 源码,结果是不同的。

  • 本工具不解析 CSS。用 display:none 隐藏的元素中的文字也会保留在结果中。
  • 图片的替代文本(alt)和链接地址(href)会随标签一起消失。如果需要链接地址,请在删除标签之前从源码中另行确认。
  • 如果 HTML 源码中把一句长句分成多行书写,这些换行会原样保留。这种情况下,在后面加上能把段落内各行接起来的 修复 PDF 复制的换行 会有帮助。
  • <span> 这类非块级元素的边界处既不插入换行也不插入空格,所以源码中没有空格、紧挨着的元素,其文字会连在一起输出。

邮件模板中的隐藏字符

新闻通讯的 HTML 中,有时会为了控制收件箱里的预览文字而放入几十个 &zwnj;&#8203; 这样的不可见字符。删除标签时会把这些实体转换为零宽非连接符(U+200C)和零宽空格(U+200B),配方的第二步会把它们删除。如果关闭“整理不可见字符·引号”这一步,这些字符就会留在结果中,表面上完好的文本在搜索或比较时可能对不上。

如果想在列表项前重新加上项目符号,请在配方后加入“在行首行尾添加字符”,在行首填入 - 。不过它会加到每一行上,所以不适合标题与段落混在一起的结果。

注意

  • 标签的删除以“< 后面跟英文字母、并以 > 结束”的形式为准。属性值中含有 > 的少见源码可能会残留一部分。
  • 实体是在删除标签之后才解析的,所以源码中的 &lt;b&gt; 不会被当作标签处理,而是作为 <b> 这几个字符保留。这是有意为之的行为。

检查清单

  • 先粘贴完整的源码,套用配方试试。
  • 如果要用表格,关闭会删除制表符的步骤。
  • 如果需要链接地址,在删除标签之前先保存下来。

最后更新: 2026-09-23