Beautiful Soup - NavigableString() 方法



方法描述

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'>
广告
© . All rights reserved.