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:
[]
廣告