在 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。