在 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>
相關用法
- Python BeautifulSoup previous_siblings屬性用法及代碼示例
- Python BeautifulSoup previous_element屬性用法及代碼示例
- Python BeautifulSoup previous_elements屬性用法及代碼示例
- Python Django prefetch_related_objects用法及代碼示例
- Python BeautifulSoup prettify方法用法及代碼示例
- Python calendar prmonth()用法及代碼示例
- Python Tableau projects.delete_flow_default_permissions用法及代碼示例
- Python Tableau projects.update_datasource_default_permissions用法及代碼示例
- Python Tableau projects.populate_datasource_default_permissions用法及代碼示例
- Python NumPy prod方法用法及代碼示例
- Python Tableau projects.update_permission用法及代碼示例
- Python Tableau projects.get用法及代碼示例
- Python print方法用法及代碼示例
- Python calendar pryear()用法及代碼示例
- Python Tableau projects.delete_datasource_default_permissions用法及代碼示例
- Python Tableau projects.delete用法及代碼示例
- Python print()用法及代碼示例
- Python Tableau projects.update用法及代碼示例
- Python Tableau projects.create用法及代碼示例
- Python Tableau projects.update_workbook_default_permissions用法及代碼示例
- Python Tableau projects.populate_permissions用法及代碼示例
- Python Tableau projects.delete_permission用法及代碼示例
- Python Tableau projects.delete_workbook_default_permissions用法及代碼示例
- Python profile.Profile用法及代碼示例
- Python property()用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 BeautifulSoup | previous_sibling property。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。