我正在试验http://robobrowser.readthedocs.org/en/latest/readme.html,这是一个基于美丽汤库的新python库。在一些帮助下,我在django应用程序中返回了一个html页面,但我无法弄清楚剥离标签只给我文本。 我的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 code to remove HTML tags from a string):
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标签并返回文本?
答案 0 :(得分:2)
BeautifulSoup提供了soup::get_text()
方法,用于从解析的HTML文档中提取文本(有点令人困惑,这相当于getText
方法和text
属性)。您可以使用browser.parsed
访问当前页面的已解析HTML。因此,要获取当前页面的纯文本,请尝试
text = browser.parsed.get_text()
答案 1 :(得分:1)
我更喜欢使用bleach
。
以下是一些示例代码:
import Bleach
varName = ( bleach.clean( result.find_all( class_ = 'className' ),
strip = True
)
).strip( '[])' )