在Python 中從字串中剝離HTML 標籤
在Python 中,有多種情況下您可能需要從字串中刪除HTML 標籤以提取其內容。讓我們探討這個問題的解決方案。
假設您使用 mechanize 庫檢索 HTML 內容,如範例程式碼段所示。內容的每一行都包含 HTML 標籤和文字。要僅提取文本,我們需要剝離標籤。
一種選擇是使用自訂函數來執行此任務。函數 strip_tags 利用 HTMLParser 類別建立一個處理 HTML 內容的解析器。解析器僅提取標籤內的資料並將其累積在 StringIO 物件中。
以下是Python 3 的程式碼片段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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,請使用以下程式碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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中文網其他相關文章!