Если нужно просто подчистить текст от всех тегов (т.е. убрать все, что содержится в угловых скобках), то это можно сделать так:
>>> import re
>>> html = '<b>Hello</b> and <a href="">bye</a>'
>>> p = re.compile(r'<.*?>')
>>> p.sub('', html)
'Hello and bye'
>>>
А если, например, надо удалить все ссылки вместе с текстом, то подойдет следующее решение:
>>> import re
>>> html = '<b>Hello</b> and <a href="">bye</a>'
>>> p = re.compile(r'<a.*?</a>')
>>> p.sub('', html)
'<b>Hello</b> and '
>>>
Удалить только определенный тег:
>>> import re
>>> html = '<b>Hello</b> and <a href="">bye</a>'
>>> p = re.compile(r'<b>|</b>')
>>> p.sub('', html)
'Hello and <a href="">bye</a>'
>>>
Наверное всё-таки "подчистить текст от тегов" означает убрать теги, а не их содержимое. Т.е. превратить html-документ в обычный текст. Это гораздо более жизненная задача. Особенно если вспомнить, что всё полезное в любом валидном html-документе содержится в тех или иных тегах.
ОтветитьУдалитьНе все так просто. А если подсунуть обычный html документ, то он сотрет все. Ведь он начинается с <, а заканчивается >
ОтветитьУдалитьДень добрый!
ОтветитьУдалитьЕсть такой вот скрипт http://habrahabr.ru/post/135822/
хотелось бы в него добавить возможность удаление тегов <a
так как мне нужно удалить все теги "а" оставив содержимое между тегов, после если есть тег img я нумерую их и переношу на новую строку
пока что переработал на поиск <img с пронумеровкой строк а удаление не удается(
Помогите пожалуйста советом.