Bleach从HTML中删除非白名单标签,但保留子节点,例如
>>> import bleach
>>> bleach.clean("<a href="">stays</a>", strip=True, tags=[])
'stays'
>>>
如何删除整个元素及其子元素?
您应该使用lxml
。漂白剂只是为了清洁数据&确保存储的标记的安全性。
您可以使用lxml
来解析HTML或XML等结构化数据。
考虑一个简单的html文件;
<html>
<body>
<p>Hello, World!</p>
</body>
</html>
from lxml import html
root = html.parse("hello_world.html").getroot()
print(html.tostring(root))
# <html><body><p>Hello, World!</p></body></html>
p = root.find("body/p")
p.drop_tree()
print(html.tostring(root))
# <html><body></body></html>
与此相关的是,如果您想研究lxml
的一些更高级的解析,我在这里最老的问题之一是让python解析xml&用它编写python代码。编写一个python工具将XML转换为python?