在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中文網其他相關文章!