首頁 >後端開發 >Python教學 >如何在Python中高效地去除字串中的HTML標籤?

如何在Python中高效地去除字串中的HTML標籤?

Patricia Arquette
Patricia Arquette原創
2024-12-06 22:47:11300瀏覽

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

在Python 中從字串中剝離HTML 標籤

在Python 中,有多種情況下您可能需要從字串中刪除HTML 標籤以提取其內容。讓我們探討這個問題的解決方案。

假設您使用 mechanize 庫檢索 HTML 內容,如範例程式碼段所示。內容的每一行都包含 HTML 標籤和文字。要僅提取文本,我們需要剝離標籤。

一種選擇是使用自訂函數來執行此任務。函數 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn