bleach clean добавляет тег "<pre> <code>" в начало вместо очистки

Я поскреб часть содержимого html из Интернета, ниже это только начало,

<p style="max-width: 100%;min-height: 1em;letter-spacing: 0.544px;text-align: center;box-sizing: border-box !important;word-wrap: break-word !important;"><strong style="max-width: 100%;letter-spacing: 0.544px;font-size: 24px;box-sizing: border-box !important;word-wrap: break-word !important;"><strong style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;word-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(255, 41, 65);box-sizing: border-box !important;word-wrap: break-word !important;"><strong style="max-width: 100%;letter-spacing: 0.544px;color: rgb(0, 0, 0);font-size: 18px;box-sizing: border-box !important;word-wrap: break-word !important;"><span style="max-width: 100%;font-size: 24px;letter-spacing: 0.544px;box-sizing: border-box !important;word-wrap: break-word !important;"><strong style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;word-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;word-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;word-wrap: break-word !important;"><strong style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;word-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.544px;color: rgb(61, 167, 66);box-sizing: border-box !important;word-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;word-wrap: break-word !important;">...

Я использую

body_html=bleach.clean(markdown(value, output_format='html'),tags=['SOME_ALLOWED_TAGS'] ,attributes=['SOME_ALLOWED_ATTRIBUTES'],styles=['SOME_ALLOWED_STYLES'],strip=True,strip_comments=True)

но возвращение не то, что я ожидал,

<pre><code> &lt;p style="max-width: 100%;min-height: 1em;letter-spacing: 0.544px;text-align: center;box-sizing: border-box !important;word-wrap: break-word !important;"&gt;&lt;strong style="max-width: 100%;letter-spacing: 0.544px;font-size: 24px;box-sizing: border-box !important;word-wrap: break-word !important;"&gt;&lt;strong style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;word-wrap: break-word !important;"&gt;&lt;span style="max-width: 100%;color: rgb(255, 41, 65);box-sizing: border-box !important;word-wrap: break-word !important;"&gt;&lt;strong style="max-width: 100%;letter-spacing: 0.544px;color: rgb(0, 0, 0);font-size: 18px;box-sizing: border-box !important;word-wrap: break-word !important;"&gt;&lt;span style="max-width: 100%;font-size: 24px;letter-spacing: 0.544px;box-sizing: border-box !important;word-wrap: break-word !important;"&gt;&lt;strong style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;word-wrap: break-word !important;"&gt;&lt;span style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box  

что не так с отбеливателем? это потому, что у меня слишком много тегов и стилей, которые нужно очистить, поэтому он просто добавил "<pre><code>"в начале и закрыл в конце?

1 ответ

Решение

Разобрался. Это потому, что очищаемый контент содержит\n \n\n \n\n \n \nс начала. Сначала следует удалить их.

Другие вопросы по тегам