我有一个包含文本和HTML的字符串。我想删除或以其他方式禁用某些HTML标记,例如<script>,同时允许其他HTML标记,以便我可以安全地将其呈现在网页上。我有一个允许标签的列表,如何处理字符串以删除任何其他标签?
<script>
这是一个使用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。
tag.extract()
tag.hidden
您可能还会考虑使用lxml和Tidy。