ホームページ >バックエンド開発 >Python チュートリアル >Python で文字列から HTML タグを効率的に削除するにはどうすればよいですか?

Python で文字列から HTML タグを効率的に削除するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-06 22:47:11299ブラウズ

How Can I Efficiently Remove HTML Tags from Strings in Python?

Python で文字列から HTML タグを削除する

Python では、文字列から HTML タグを削除する必要があるさまざまなシナリオがあります。その内容を抽出します。この問題の解決策を見てみましょう。

スニペットの例に示すように、mechanize ライブラリを使用して HTML コンテンツを取得するとします。コンテンツの各行には HTML タグとテキストが含まれます。テキストのみを抽出するには、タグを削除する必要があります。

1 つのオプションは、カスタム関数を使用してこのタスクを実行することです。関数strip_tagsは、HTMLParserクラスを利用して、HTMLコンテンツを処理するパーサーを作成します。パーサーはタグ内のデータのみを抽出し、それを StringIO オブジェクトに蓄積します。

Python 3 のコード スニペットは次のとおりです。

from io import StringIO
from html.parser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        super().__init__()
        self.reset()
        self.strict = False
        self.convert_charrefs= True
        self.text = StringIO()
    def handle_data(self, d):
        self.text.write(d)
    def get_data(self):
        return self.text.getvalue()

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

Python 2 の場合は、次のコードを使用します。

from HTMLParser import HTMLParser
from StringIO import StringIO

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.text = StringIO()
    def handle_data(self, d):
        self.text.write(d)
    def get_data(self):
        return self.text.getvalue()

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

HTML コンテンツをこの関数に渡すことで、タグを効果的に削除し、テキストのみを保持できます。コンテンツ。

以上がPython で文字列から HTML タグを効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。