Удаляем ненужные теги в тексте при помощи Python

Привет, друзья! В сегодняшней статье мы рассмотрим как удалить все внутренние HTML-теги из строки и оставить только внешние, например, сохранить тег p, но убрать все вложенные теги, такие как b, и другие. Это может понадобиться, если вы хотите очистить текст от форматирования или подготовить его к публикации в системе, где HTML не поддерживается.
Зачем это нужно?
Представьте ситуацию: вы получили HTML-текст из CMS, блога или API, и внутри абзаца есть разное форматирование — жирный, курсив, ссылки и т. д. Но вам нужен просто чистый текст внутри. Вручную это делать долго, а автоматизация с помощью Python позволяет быстро обработать любое количество строк.
Как это сделать?
Для удаления всех внутренних тегов мы можем воспользоваться двумя подходами:
- Через регулярные выражения (re)
- Через библиотеку BeautifulSoup
1. Удаление тегов с помощью модуля re
Этот способ подходит, если вам нужен быстрый результат и нет сложной вложенности тегов.
import re
html = 'Привет, друзья! Сегодня я расскажу вам, как работать с форматом JSON в Python. Это очень полезный навык, особенно если вы работаете с API, собираете данные из интернета или обмениваетесь информацией между разными системами.
'
# Удаляем все HTML-теги
cleaned_text = re.sub(r']+>', '', html)
# Оборачиваем обратно в
result = f'
{cleaned_text}
'
print(result)
Результат:
Привет, друзья! Сегодня я расскажу вам, как работать с форматом JSON в Python. Это очень полезный навык, особенно если вы работаете с API, собираете данные из интернета или обмениваетесь информацией между разными системами.
2. Использование BeautifulSoup
Если ваш HTML более сложный или содержит вложенные структуры, то лучше использовать библиотеку BeautifulSoup. Она аккуратно извлечёт текст из HTML и позволит сохранить нужные теги.
from bs4 import BeautifulSoup
html = 'Привет, друзья! Сегодня я расскажу вам, как работать с форматом JSON в Python. Это очень полезный навык, особенно если вы работаете с API, собираете данные из интернета или обмениваетесь информацией между разными системами.
'
soup = BeautifulSoup(html, 'html.parser')
text_only = soup.get_text()
result = f'{text_only}
'
print(result)
Какой способ выбрать?
- re — легче и быстрее для простых случаев.
- BeautifulSoup — надежнее для сложных HTML-структур.
Если вы хотите научиться применять Python для решения повседневных задач, рекомендую пройти курс "Написание лайфхаков на Python". Там вы узнаете, как автоматизировать рутину, работать с файлами, парсить данные и многое другое!
-
-
Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.