在 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字符串。
相關用法
- Python BeautifulSoup Tag strings屬性用法及代碼示例
- Python BeautifulSoup Tag stripped_strings屬性用法及代碼示例
- Python BeautifulSoup Tag contents屬性用法及代碼示例
- Python BeautifulSoup Tag decompose方法用法及代碼示例
- Python BeautifulSoup Tag children屬性用法及代碼示例
- Python BeautifulSoup Tag get_text方法用法及代碼示例
- Python BeautifulSoup Tag clear方法用法及代碼示例
- Python BeautifulSoup Tag descendants屬性用法及代碼示例
- Python Tableau TableauAuth用法及代碼示例
- Python Django Tan用法及代碼示例
- Python Tableau TaskItem用法及代碼示例
- Python Thread join()用法及代碼示例
- Python Django TodayArchiveView用法及代碼示例
- Python Tensorflow asin()用法及代碼示例
- Python Django TransactionNow用法及代碼示例
- Python Thread run()用法及代碼示例
- Python TextBlob.correct()用法及代碼示例
- Python Tuple len()用法及代碼示例
- Python Tensorflow math.accumulate_n()用法及代碼示例
- Python Tensorflow cosh()用法及代碼示例
- Python Pandas Timestamp構造函數用法及代碼示例
- Python Django TransactionTestCase.reset_sequences用法及代碼示例
- Python Tuple min()用法及代碼示例
- Python Thread setName()用法及代碼示例
- Python TextCalendar prmonth()用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 BeautifulSoup Tag | string property。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。