首页 > 解决方案 > 蟒蛇漂白剂:不一致的清洁行为

问题描述

我想使用漂白剂来格式化一些可能不干净的 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;'

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

这里发生了什么?

标签: pythonpython-3.xbleach

解决方案


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

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

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

推荐阅读