一、方法描述
对于任何包含多个子元素的 PageElement,可以使用 strings
属性来获取每个子元素的内部文本。不同于 string
属性,strings
处理元素包含多个子元素的情况。strings
属性返回一个生成器对象,它会产生对应于每个子元素的一系列 NavigableStrings。
二、语法
Tag.strings
三、示例
示例 1
您可以检索 Soup 对象以及 Tag 对象的 strings
属性的值。在下面的例子中,检查了 Soup 对象的 strings
属性。
from bs4 import BeautifulSoup, NavigableString
markup = '''
<div id="Languages">
<p>Java</p> <p>Python</p> <p>C++</p>
</div>
'''
soup = BeautifulSoup(markup, 'html.parser')
print([string for string in soup.strings])
输出:
['\n', '\n', 'Java', ' ', 'Python', ' ', 'C++', '\n', '\n']
注意输出列表中的换行符和空格。我们可以使用 stripped_strings
属性来移除它们。
示例 2
我们现在获取由 <div>
标签的 strings
属性返回的生成器对象。通过一个循环,我们打印出这些字符串。
tag = soup.div
navstrs = tag.strings
for navstr in navstrs:
print(navstr)
输出:
Java
Python
C++
注意换行符和空格出现在了输出中,这可以使用 stripped_strings
属性来移除。