本文介绍了Python的HTML清洁器/洗涤器/过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一个模块,用于删除字符串中的任何HTML标签,这些标签在白名单中找不到。

I'm looking for a module that will remove any HTML tags from a string that are not found in a whitelist.

推荐答案

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

If you want to remove the contents of the invalid tags as well, substitute tag.extract() for tag.hidden.

您也可以使用和。

这篇关于Python的HTML清洁器/洗涤器/过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 16:10