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

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

Patricia Arquette
發布: 2024-12-06 22:47:11
原創
363 人瀏覽過

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 的程式碼片段:

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板