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
廣告