Beautiful Soup - previous_sibling 属性



方法描述

位于相同缩进级别的 HTML 标签称为兄弟标签。PageElement 的 previous_sibling 属性返回相同级别或相同父级下之前出现的标签(出现在当前标签之前的标签)。此属性封装了 find_previous_sibling() 方法。

语法

element.previous_sibling

返回类型

previous_sibling 属性返回 PageElement、Tag 或 NavigableString 对象。

示例 1

在下面的代码中,HTML 字符串包含在 <p> 标签内两个相邻的标签。它显示了出现在其之前的 <b> 标签的兄弟标签。

from bs4 import BeautifulSoup

fp = open("index.html")
soup = BeautifulSoup("<p><b>Hello</b><i>Python</i></p>", 'html.parser')
tag = soup.i
sibling = tag.previous_sibling
print (sibling)

输出

<b>Hello</b>

示例 2

我们使用 index.html 文件进行解析。页面包含一个 HTML 表单,其中包含三个输入元素。哪个元素是 id 属性为 age 的输入元素之前的兄弟元素?以下代码显示了它 -

from bs4 import BeautifulSoup

fp = open("index.html")
soup = BeautifulSoup(fp, 'html.parser')

tag = soup.find('input', {'id':'age'})
sib = tag.previous_sibling.previous_sibling
print (sib)

输出

<input id="nm" name="name" type="text"/>

示例 3

首先我们找到包含字符串“Tutorial”的 <p> 标签,然后找到它之前的标签。

html = '''
<p>Excellent</p><p>Python</p><p>Tutorial</p>
'''
from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'html.parser')

tag = soup.find('p', string='Tutorial')
print (tag.previous_sibling)

输出

<p>Python</p>
广告
© . All rights reserved.