Beautiful Soup - parents 属性



方法描述

BeautifulSoup 库中的 parents 属性以递归方式检索给定 PageElement 的所有父元素。parents 属性返回的值类型是生成器,借助它我们可以自下而上地列出父元素。

语法

Element.parents

返回值

parents 属性返回一个生成器对象。

示例 1

此示例使用 .parents 从文档深处嵌套的 <a> 标签遍历到文档的顶端。在下面的代码中,我们跟踪示例 HTML 字符串中第一个 <p> 标签的父元素。

html = """
<html><head><title>TutorialsPoint</title></head>
<body>
<p>Hello World</p>
"""
from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'html.parser')
tag = soup.p
for element in tag.parents:
   print (element.name)

输出

body
html
[document]

请注意,BeautifulSoup 对象的父元素是 [document]。

示例 2

在下面的示例中,我们看到 <b> 标签包含在一个 <p> 标签中。它上面的两个 div 标签具有 id 属性。我们尝试仅打印具有 id 属性的那些元素。has_attr() 方法用于此目的。

html = """
<div id="outer">
<div id="inner">
<p>Hello<b>World</b></p>
</div>
</div>
"""
from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'html.parser')
tag = soup.b
for parent in tag.parents:
   if parent.has_attr("id"):
      print(parent["id"])   

输出

inner
outer
广告
© . All rights reserved.