我想使用漂白剂来格式化一些可能不干净的 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">非法属性会被删除。
这里发生了什么?