使用Python移除字符串中的HTML标签/格式
我有一段字符串,其中包含了像链接、粗体文本这样的HTML标记。
我想去掉所有的标记,只保留纯文本。
这样做的最好方法是什么?用正则表达式吗?
5 个回答
12
据我所知,用正则表达式来解析HTML并不是个好主意。你最好使用像Beautiful Soup这样的HTML/XML解析器。
13
使用 lxml.html。它比 BeautifulSoup 快很多,而且提取纯文本只需要一条命令。
>>> import lxml.html
>>> page = lxml.html.document_fromstring('<!DOCTYPE html>...</html>')
>>> page.cssselect('body')[0].text_content()
'...'
64
如果你打算使用正则表达式:
import re
def striphtml(data):
p = re.compile(r'<.*?>')
return p.sub('', data)
>>> striphtml('<a href="foo.com" class="bar">I Want This <b>text!</b></a>')
'I Want This text!'