Удаление тегов HTML из строки unicode в Python

У меня есть сильный, что я выскочил из файла XML и содержит некоторые теги форматирования HTML

(<b>, <i>, etc) 

Есть ли быстрый и простой способ удалить все эти теги из текста?

Я пытался

 str = str.replace("<b>","") 

и применял его несколько раз к другим тегам, но это не работает

Использование lxml.html:

 lxml.html.fromstring(s).text_content() 

Это разбивает все теги и преобразует все сущности в соответствующие символы.

Ответ зависит от ваших конкретных потребностей. Вы можете взглянуть на регулярные выражения. Но я бы посоветовал вам использовать http://www.crummy.com/software/BeautifulSoup/, если вы хотите очистить плохой xml или html.

Вот как использовать модуль BeautifulSoup для замены только некоторых тегов, оставив только один HTML-код:

 from BeautifulSoup import BeautifulSoup, NavigableString def strip_tags(html, invalid_tags): soup = BeautifulSoup(html) for tag in soup.findAll(True): if tag.name in invalid_tags: s = "" for c in tag.contents: if type(c) != NavigableString: c = strip_tags(unicode(c), invalid_tags) s += unicode(c) tag.replaceWith(s) return soup html = "<p>Good, <b>bad</b>, and <i>ug<b>l</b><u>y</u></i></p>" invalid_tags = ['b', 'i', 'u'] print strip_tags(html, invalid_tags) 

Результат:

 <p>Good, bad, and ugly</p>