gpt4 book ai didi

python - 防止使用 Python 呈现某些 HTML 标记

转载 作者:太空宇宙 更新时间:2023-11-04 16:15:42 24 4
gpt4 key购买 nike

假设我有一个字符串:

string = '<img src="image.png"><input type=text>'

我有一个函数可以将字符串转换为 HTML 标记并删除除 <img> 之外的所有标签。像这样的标签:

VALID_TAGS = ['img']

def sanitizeHTML(value):

soup = BeautifulSoup(value)

for tag in soup.findAll(True):
if tag.name not in VALID_TAGS:
tag.hidden = True

return Markup(soup.renderContents())

如果我通过函数传递字符串,它将返回 <img src="image.png">因为这是唯一有效的 HTML 标记。

如您所见,<input>标签甚至没有出现在字符串中。我将如何保留 '<input type=text>'在字符串中但不呈现它,因此它将显示为文本而不是 HTML。

我该怎么做?谢谢。

最佳答案

为此,我会使用 bleach 模块 - documentation here

Bleach 负责净化您的 HTML 标签和 HTML 转义“不安全”标签。

这是一个示例程序,说明了如何使用漂白剂:

#!/usr/bin/env python
from bs4 import BeautifulSoup
import bleach

def sanitizeHTML(value):
soup = BeautifulSoup(bleach.clean(value,tags=VALID_TAGS,attributes=VALID_ATTRIBUTES),"html5lib")
return soup.renderContents()

VALID_TAGS = ['img']
VALID_ATTRIBUTES = ['src']

string = '<img src="image.png"><input type=text>'
result = sanitizeHTML(string)

print result

关于python - 防止使用 Python 呈现某些 HTML 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32150787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com