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


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


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

例子

基本用法

考慮以下 HTML 文檔:

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

讓我們獲取 <i>is great</i>previous_sibling

i_tag = soup.find("i")
i_tag.previous_sibling



<b>Alex</b>

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

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

i_tag = soup.find("i")
i_tag.previous_sibling.previous_sibling



None

意外行為

考慮以下 HTML 文檔:

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

讓我們獲取 <p id="bob">Bob</p>previous_sibling

p_bob = soup.find(id="bob")
p_bob.previous_sibling



'\n'

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

p_bob = soup.find(id="bob")
p_bob.previous_sibling.previous_sibling



<p>Bob</p>

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

p_bob = soup.find(id="bob")
p_bob.find_previous_sibling()



<p>Alex</p>

相關用法


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