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> и на границах блочных элементов вроде p, div, h1h6, li, tr. Переносами становятся и открывающие, и закрывающие теги, поэтому появляются пустые строки; три и более пустых строки подряд сокращаются до двух.
  • Таблицы: концы ячеек (</td>, </th>) превращаются в табуляции. Если вставить результат в электронную таблицу, столбцы разделятся.
  • Сущности: если включено «Раскрывать сущности вроде &amp;», распространённые именованные сущности вроде &amp; &lt; &gt; &quot; &nbsp; &hellip; и числовые вроде &#39; &#x27; превращаются в настоящие символы. Именованные сущности, которых инструмент не знает, остаются как в исходнике.
<h2>Объявление</h2>
<p>График&nbsp;работ на этой неделе.<br>Вопросы — в раздел Q&amp;A.</p>
<ul><li>Пн: сервер</li><li>Ср: БД</li></ul>
<script>track();</script>

Такой код превращается в следующее.

Объявление

График работ на этой неделе.
Вопросы — в раздел 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