0

Bleach从 HTML 中去除未列入白名单的标签,但留下子节点,例如

>>> import bleach
>>> bleach.clean("<a href="">stays</a>", strip=True, tags=[])
'stays'
>>>  

如何删除整个元素及其子元素?

4

1 回答 1

0

你应该使用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 代码。编写 Python 工具将 XML 转换为 Python?

于 2020-09-01T21:26:44.767 回答