當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python BeautifulSoup next_sibling屬性用法及代碼示例

在 Beautiful Soup 中,標簽或字符串的 next_sibling 屬性返回同一父級下的下一個標簽或字符串。

例子

基本用法

考慮以下 HTML 文檔:

my_html = "<p><b>Alex</b><i>is great</i></p>"
soup = BeautifulSoup(my_html)

讓我們獲取 <b>Alex</b>next_sibling

b_alex = soup.find("b")
b_alex.next_sibling



<i>is great</i>

這告訴我們 <b>Alex</b> 的下一個節點是 <i>is great</i> ,我們知道這是真的,因為 <i>is great</i> 是同一 p 標簽下的下一個元素。

如果下一個節點不存在,則返回None

b_alex = soup.find("b")
b_alex.next_sibling.next_sibling



None

意外行為

考慮以下 HTML 文檔:

my_html = """
       <div>
             <p>Alex</p>
             <p>Bob</p>
       </div>
"""
soup = BeautifulSoup(my_html)

讓我們獲取 <p>Alex</p>next_sibling

p_alex = soup.find("p")
p_alex.next_sibling



'\n'

對於那些期望看到 <p>Bob</p> 的人來說,結果可能會令人驚訝。出現這樣的結果是因為 <p>Alex</p><p>Bob</p> 之間存在換行符 \n 。那麽,要聯係 Bob,您需要調用 next_sibling 兩次:

p_alex = soup.find("p")
p_alex.next_sibling.next_sibling



<p>Bob</p>

如果您隻想訪問下一個同級元素,那麽更好的選擇是調用 find_next_sibling() 方法:

p_alex = soup.find("p")
p_alex.find_next_sibling()



<p>Bob</p>

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 BeautifulSoup | next_sibling property。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。