1. ホーム
  2. python

Python の文字列から、許可リストにない HTML タグを削除する

2023-08-26 20:25:14

質問

テキストとHTMLを含む文字列があります。私は、以下のようないくつかのHTMLタグを削除したり、無効にしたいのです。 <script> のような一部のHTMLタグを削除するか無効にして、他のタグは許可して、Webページで安全に表示できるようにしたいのです。許可されたタグのリストはありますが、他のタグを削除するために文字列をどのように処理すればよいですか?

どのように解決するのですか?

ここでは ビューティフルスープ :

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 .

また lxml ティディ .