一、方法描述
在 bs4
包中,NavigableString()
方法是 NavigableString
类的构造方法。NavigableString
代表解析文档中最内层的子元素。此方法将普通的 Python 字符串转换为 NavigableString
。相反地,内置的 str()
方法将 NavigableString
对象转换为 Unicode 字符串。
二、语法
NavigableString(string)
三、参数
-
string
:一个属于 Python str
类的对象。
四、返回值
NavigableString()
方法返回一个 NavigableString
对象。
五、示例
示例 1
在下面的代码中,HTML 字符串包含一个空的 <b>
标签。我们在其中添加了一个 NavigableString
对象。
html = """
<p><b></b></p>
"""
from bs4 import BeautifulSoup, NavigableString
soup = BeautifulSoup(html, 'html.parser')
navstr = NavigableString("Hello World")
soup.b.append(navstr)
print(soup)
输出:
<p><b>Hello World</b></p>
示例 2
在这个例子中,我们可以看到有两个 NavigableString
对象被附加到了一个空的 <b>
标签上。该标签响应的是 strings
属性而不是 string
属性。它是一个 NavigableString
对象的生成器。
html = """
<p><b></b></p>
"""
from bs4 import BeautifulSoup, NavigableString
soup = BeautifulSoup(html, 'html.parser')
navstr = NavigableString("Hello")
soup.b.append(navstr)
navstr = NavigableString("World")
soup.b.append(navstr)
for s in soup.b.strings:
print(s, type(s))
输出:
Hello <class 'bs4.element.NavigableString'>
World <class 'bs4.element.NavigableString'>
示例 3
如果我们访问 <b>
标签对象的 stripped_strings
属性而非 strings
属性,我们将得到一个 Unicode 字符串即 str
对象的生成器。
html = """
<p><b></b></p>
"""
from bs4 import BeautifulSoup, NavigableString
soup = BeautifulSoup(html, 'html.parser')
navstr = NavigableString("Hello")
soup.b.append(navstr)
navstr = NavigableString("World")
soup.b.append(navstr)
for s in soup.b.stripped_strings:
print(s, type(s))
输出:
Hello <class 'str'>
World <class 'str'>