Beautiful Soup 简明教程

Beautiful Soup - find_next_siblings() Method

Method Description

find_next_siblings() 方法类似于 next_sibling 属性。它查找此 PageElement 同一级别内所有符合给定条件且在文档中后续出现的兄弟元素。

Syntax

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

Parameters

  1. name − 对标记名称的筛选。

  2. attrs − 对属性值进行筛选的字典。

  3. string − 要搜索的字符串(而非标记)。

  4. limit − 在找到指定数量的出现次数后停止寻找。

  5. kwargs − 对属性值进行筛选的字典。

Return Type

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

Example 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)

Output

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

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

Example 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())

Output

next siblings:
[]