我想使用漂白剂来格式化一些可能不干净的 HTML。在以下示例中,理想情况下漂白剂应去除:
- 第一个开口中的额外空间
<p >
- 结束链接标签中的属性
</a attr="test">
- 最后关闭的多余空格
</p >
我的代码如下所示:
import bleach
html = """<p >This <a href="book"> book </a attr="test"> will help you</p >"""
html_cleaned = bleach.clean(html)
# html_cleaned is:
#'<p >This <a href="book"> book </a> will help you</p>'
如您所见,漂白剂非常不一致:
- 开始和结束
p
标记的 < 和 > 转义为<
and>
。对于链接标签,这不会发生 - 中的空格
</p >
被删除,在开口中<p >
它们不是 - 另外,如果我在结束
p
标记中添加一个属性</p attr="test">
,它不会被删除,而关闭</a attr="test">
非法属性会被删除。
这里发生了什么?