在Python中过滤HTML标签并解析实体

18 投票
8 回答
27265 浏览
提问于 2025-04-10 23:37

因为正则表达式让我感到害怕,所以我在寻找一种方法,想要在Python中去掉字符串里的所有HTML标签,并且处理掉HTML实体。

8 个回答

6

我同意Lucas的看法,正则表达式并没有那么可怕,但我还是觉得用专门的HTML解析器更好。这是因为HTML标准本身就很复杂,特别是当你想解析从网上随便抓取的“HTML”页面时,你需要写很多代码来处理各种特殊情况。看起来Python自带了一个解析器

你还可以看看TidyLib的Python绑定,它可以修复损坏的HTML,这样解析HTML的成功率会高很多。

16

使用 BeautifulSoup!这个工具非常适合这种情况,当你遇到一些格式不太好的文本时,它能帮你提取出有用的信息。你只需要把原始文本放进去,提取出所有的字符串标签,然后把它们连接起来就可以了。

39

使用 lxml,这是Python中最好的处理xml/html的库。

import lxml.html
t = lxml.html.fromstring("...")
t.text_content()

如果你只是想清理一下HTML,可以看看lxml.html.clean 模块

撰写回答