python 漂白剂:清洁行为不一致

python bleach: inconsistent cleaning behaviour

我想用漂白剂格式化一些可能不干净的东西 HTML。 在以下示例中,理想情况下应去除漂白剂:

我的代码如下所示:

import bleach
html = """<p   >This <a href="book"> book </a attr="test"> will help you</p  >"""
html_cleaned = bleach.clean(html)

# html_cleaned is:
#'&lt;p  &gt;This <a href="book"> book </a> will help you&lt;/p&gt;'

如您所见,漂白剂非常不一致:

这里发生了什么?

bleach.clean 需要一个可选的 tags 参数来指定允许的标签。 默认情况下不允许使用 p 标签,因此不会进行清理处理。

我的问题可以通过以下方式解决:

cleaned_doc = bleach.clean(input_doc, tags = bleach.sanitizer.ALLOWED_TAGS+["p"])