當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python BeautifulSoup Tag string屬性用法及代碼示例


在 Beautiful Soup 中,字符串屬性返回 NavigableString 對象,該對象類似於典型的 Python 字符串,具有用於在 HTML 文檔中導航的附加幫助器方法和屬性。

為了演示如何使用字符串屬性,這裏有一個玩具 HTML 文檔:

my_html = """
       <div>
              <p>Alice</p>
              <p>Bob</p>
      <p id="cathy"></p>
       </div>
"""
soup = BeautifulSoup(my_html)

例子

要獲取文本Alice

soup.find("p").string



'Alice'

如果你想將其轉換為標準 Python 字符串,隻需使用 str(~) 即可,如下所示:

str(soup.find("p").string)



'Alice'

當有多個孩子時的情況

當標簽有多個子元素時,則返回None

soup.find("div").string



None

在我們的 HTML 文檔中,根 div 標記包含 3 個 p 標記,因此這就是返回 None 的原因。

沒有內部內容的情況

當標簽為空時,返回None

soup.find(id="cathy").string



None

請注意,不會返回空字符串""

轉換為標準 Python 字符串

要將 Beautiful Soup 的 NavigableString 轉換為標準 Python 字符串,請使用本機 str(~) 方法,如下所示:

x_nav = soup.find("p").string
x = str(x_nav)
x



'Alice'

我們來比較一下它們的類型:

print("before:", type(x_nav))
print("after:", type(x))



before: <class 'bs4.element.NavigableString'>
after: <class 'str'>
警告

使用 NavigableString 時潛在的內存泄漏

NavigableString 包含對 Beautiful Soup 庫的引用。這意味著,如果您保留 NavigableStrings,即使您使用完 Beautiful Soup,係統也將無法釋放內存。為了確保不會發生這樣的內存泄漏,請將最終的NavigableString轉換為標準Python字符串。

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 BeautifulSoup Tag | string property。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。