Как очистить текст от HTML

Описание товаров на сайте поставщика может содержать ссылки на другие товары, картинки и другую HTML-разметку. При импорте таких товаров на наш сайт – необходимо очистить текст описания от ссылок, разметки и других элементов.

Ручной способ

С помощью готовых сервисов, например html-cleaner.

Результат очистки – до и после

Автоматический способ

С помощью скрипта на Python и библиотеки html_sanitizer.

from html_sanitizer import Sanitizer

sanitizer = Sanitizer({
    "tags": {"h2", "h3", "strong", "em", "p", "ul", "ol", "li", "br", "sub", "sup", "hr"},
    "attributes": {},
    "empty": {"hr", "br"},
    "separate": {"p", "li"},
})


html = """
<div class="content detail-text-wrap" itemprop="description">
<a href="#">Стол</a> обеденный предназначен для оснащения комнат, кухонь, служебных помещений.<br>
Используется для приема пищи или временного размещения предметов.<br>
Стол изготовлен из ЛДСП панели с ножками из стальной профильной трубы с полимерным покрытием.
</div>
"""

description = sanitizer.sanitize(html)

Мы сохраняем основную разметку, такую как переносы, списки и т.д. Но удаляем ссылки и другие не нужные теги.

Стол обеденный предназначен для оснащения комнат, кухонь, служебных помещений.<br> Используется для приема пищи или временного размещения предметов.<br> Стол изготовлен из ЛДСП панели с ножками из стальной профильной трубы с полимерным покрытием.