问题描述
这是一个使用BeautifulSoup的简单解决方案:
from bs4 import BeautifulSoup
VALID_TAGS = ['strong', 'em', 'p', 'ul', 'li', 'br']
def sanitize_html(value):
soup = BeautifulSoup(value)
for tag in soup.findAll(True):
if tag.name not in VALID_TAGS:
tag.hidden = True
return soup.renderContents()
如果您也要删除无效标签的内容,请替换tag.extract()
为tag.hidden
。
解决方法
我有一个包含文本和HTML的字符串。我想删除或以其他方式禁用某些HTML标记,例如<script>
,同时允许其他HTML标记,以便我可以安全地在网页上呈现它。我有一个允许标签的列表,如何处理字符串以删除任何其他标签?