我有这样一段文字:
text = """<div>
<h1>Title</h1>
<p>A long text........ </p>
<a href=""> a link </a>
</div>"""
使用纯 Python,没有外部模块我想要这个:
>>> print remove_tags(text)
Title A long text..... a link
我知道我可以使用 lxml.html.fromstring(text).text_content() 来做到这一点,但我需要在纯 Python 中使用 2.6+ 的内置或标准库来实现相同的目的
我怎样才能做到这一点?
原文由 Bruno Rocha - rochacbruno 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用正则表达式
使用正则表达式,您可以清除内部的所有内容
<>
:某些 HTML 文本还可以包含未括在方括号中的实体,例如“
&nsbm
”。如果是这种情况,那么您可能希望将正则表达式编写为此 链接 包含有关此的更多详细信息。
使用 BeautifulSoup
您还可以使用
BeautifulSoup
附加包来查找所有原始文本。您将需要在调用 BeautifulSoup 时显式设置解析器我推荐
"lxml"
如替代答案中所述(比默认的更强大(html.parser
)(即无需额外安装即可使用)。但是并不妨碍你使用外部库,所以我推荐第一种方案。
编辑:要使用
lxml
你需要pip install lxml
。