Bleach从超文本标记语言中剥离了非白名单的标签,但留下了子节点,例如
>>> import bleach
>>> bleach.clean("<a href="">stays</a>", strip=True, tags=[])
'stays'
>>> 如何删除整个元素及其子元素?
发布于 2020-09-02 05:26:45
您应该使用lxml。Bleach只是用于清理数据&确保您存储的标记中的安全性。
您可以使用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代码。Writing a Python tool to convert XML to Python?
https://stackoverflow.com/questions/63695338
复制相似问题