一、方法描述
在 Beautiful Soup 中,Soup 和 Tag 对象有一个方便的属性——string
属性。它返回 PageElement、Soup 或 Tag 内的一个单一字符串。如果这个元素有一个单一的字符串子元素,则返回对应的 NavigableString;如果这个元素有一个子标签,则返回值是子标签的 string
属性;如果元素本身是一个字符串(没有子元素),则 string
属性返回 None。
二、语法
Tag.string
三、示例
示例 1
以下代码包含了一个带有 <div>
标签的 HTML 字符串,该 <div>
包含三个 <p>
元素。我们查找第一个 <p>
标签的 string
属性。
from bs4 import BeautifulSoup, NavigableString
markup = '''
<div id="Languages">
<p>Java</p> <p>Python</p> <p>C++</p>
</div>
'''
soup = BeautifulSoup(markup, 'html.parser')
tag = soup.p
navstr = tag.string
print(navstr, type(navstr))
nav_str = str(navstr)
print(nav_str, type(nav_str))
输出:
Java <class 'bs4.element.NavigableString'>
Java <class 'str'>
string
属性返回一个 NavigableString。它可以使用 str() 函数转换为常规的 Python 字符串。
示例 2
对于包含子元素的元素,其 string
属性将返回 None。我们可以通过 <div>
标签来验证这一点。
tag = soup.div
navstr = tag.string
print(navstr)
输出:
None