当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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