Как убрать теги из HTML с помощью robobrowser
Я экспериментирую с http://robobrowser.readthedocs.org/en/latest/readme.html, новой библиотекой python, основанной на красивой библиотеке супов. с некоторой помощью я возвратил html-страницу в приложении django, но я не могу понять, чтобы убрать теги, чтобы дать мне только текст. Мое приложение Django содержит:
def index(request):
from django.utils.html import strip_tags
p=str(request.POST.get('p', False)) # p='https://www.yahoo.com/'
browser = RoboBrowser(history=True)
browser.open(p)
html = browser.response
stripped = strip_tags(html)
return HttpResponse(stripped )
когда я смотрю на выведенный html, я вижу, что он совпадает с оригинальным html. Также я не думаю, что у robobrowser есть метод text() для красивого супа.
Я также попытался (из кода Python удалить теги HTML из строки):
def remove_html_markup(s):
tag = False
quote = False
out = ""
for c in s:
if c == '<' and not quote:
tag = True
elif c == '>' and not quote:
tag = False
elif (c == '"' or c == "'") and tag:
quote = not quote
elif not tag:
out = out + c
return out
Тот же результат! Как я могу удалить HTML-теги и вернуть текст?
2 ответа
BeautifulSoup обеспечивает soup::get_text()
метод извлечения текста из разобранного HTML-документа (несколько запутанно, это эквивалентно getText
метод и text
имущество). Вы можете получить доступ к проанализированному HTML текущей страницы, используя browser.parsed
, Итак, чтобы получить простой текст текущей страницы, попробуйте
text = browser.parsed.get_text()
Я предпочитаю использовать bleach
,
Вот пример кода:
import Bleach
varName = ( bleach.clean( result.find_all( class_ = 'className' ),
strip = True
)
).strip( '[])' )