Beautiful Soup - find_next_siblings() 方法



方法描述

find_next_siblings() 方法类似于 next_sibling 属性。它查找此 PageElement 同一级别上所有满足给定条件并在文档中随后出现的兄弟节点。

语法

find_fnext_siblings(name, attrs, string, limit, **kwargs)

参数

  • name − 标签名称过滤器。

  • attrs − 属性值过滤器字典。

  • string − 要搜索的字符串(而不是标签)。

  • limit − 找到指定数量的匹配项后停止搜索。

  • kwargs − 属性值过滤器字典。

返回值类型

find_next_siblings() 方法返回一个 Tag 对象列表或 NavigableString 对象列表。

示例 1

让我们为此目的使用以下 HTML 代码片段:

<p>
   <b>
      Excellent
   </b>
   <i>
      Python
   </i>
   <u>
      Tutorial
   </u>
</p>

在下面的代码中,我们尝试查找<b>标签的所有兄弟节点。在用于抓取的 HTML 字符串中,同一级别还有两个标签。

from bs4 import BeautifulSoup
soup = BeautifulSoup("<p><b>Excellent</b><i>Python</i><u>Tutorial</u></p>", 'html.parser')

tag1 = soup.find('b')
print ("next siblings:")
for tag in tag1.find_next_siblings():
    print (tag)

输出

find_next_siblings() 的 ResultSet 使用 for 循环进行迭代。

next siblings:
<i>Python</i>
<u>Tutorial</u>

示例 2

如果某个标签之后没有要查找的兄弟节点,则此方法返回一个空列表。

from bs4 import BeautifulSoup

soup = BeautifulSoup("<p><b>Excellent</b><i>Python</i><u>Tutorial</u></p>", 'html.parser')

tag1 = soup.find('u')
print ("next siblings:")
print (tag1.find_next_siblings())

输出

next siblings:
[]
广告

© . All rights reserved.