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


Python BeautifulSoup find_all_next方法用法及代码示例


Beautiful Soup 的 find_all_next(~) 方法返回当前标签之后的标签。此方法采用与 find_all(~) 完全相同的参数。

如果没有指定参数,则返回所有标签。

例子

基本用法

考虑以下 HTML 文档:

my_html = """
    <p id="alex">Alex</p>
    <p>Bob</p>
    <p id="cathy">Cathy</p>
"""
soup = BeautifulSoup(my_html, "html.parser")

要查找 Alex 标签之后的所有标签:

p = soup.find(id="alex")
p.find_all_next()



[<p>Bob</p>, <p id="cathy">Cathy</p>]

要查找 Alex 标签后带有 id="cathy" 的所有标签:

p = soup.find(id="alex")
p.find_all_next(id="cathy")



[<p id="cathy">Cathy</p>]

父级不共享的情况

一个常见的混淆来源是当我们有以下 HTML 文档时:

my_html = """
   <div>
      <p id="alex">Alex</p>
   </div>
   <p>Bob</p>
"""
soup = BeautifulSoup(my_html, "html.parser")

在这里,Bob 的标签与 Alex 的标签不共享同一父级。在 Alex 的标签上调用 find_all_next(~) 会产生:

p = soup.find(id="alex")
p.find_all_next()



[<p>Bob</p>]

请注意 find_all_next(~) 如何返回 HTML 文档中当前标记之后的标记。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 BeautifulSoup | find_all_next method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。