过滤掉HTML标签并解析python中的实体

akr*_*aut 18 html python

因为正则表达式吓到我了,所以我试图找到一种方法来删除所有HTML标记并从Python中的字符串中解析HTML实体.

Pet*_*ann 40

使用lxml这是python最好的xml/html库.

import lxml.html
t = lxml.html.fromstring("...")
t.text_content()
Run Code Online (Sandbox Code Playgroud)

如果你只是想清理lxml.html.clean 模块的html外观


Joh*_*kin 16

使用BeautifulSoup!它是完美的,你可以获得可疑的美德标记,并需要从中得到合理的东西.只需传入原始文本,提取所有字符串标记,然后加入它们.

  • 这样做的代码是:''.join(BeautifulSoup(value,convertEntities = BeautifulSoup.HTML_ENTITIES).findAll(text = True)) (9认同)

Gre*_*her 6

虽然我同意Lucas的观点,正则表达式并不那么可怕,但我仍然认为你应该使用专门的HTML解析器.这是因为HTML标准足够多(特别是如果你想解析从Internet上取下的任意"HTML"页面),你需要编写大量代码来处理极端情况.似乎python包含一个开箱即用的.

您还应该查看TidyLibpython绑定,它可以清理损坏的HTML,使任何HTML解析的成功率更高.