Beautiful Soup - previous_element 屬性



方法描述

在Beautiful Soup庫中,previous_element屬性返回緊接在當前PageElement之前的Tag或NavigableString,即使它在父樹之外也是如此。還有一個previous屬性具有類似的行為。

語法

Element.previous_element

返回值

previous_element和previous屬性返回緊接在當前標籤之前的標籤或NavigableString。

示例1

在從給定HTML字串解析的文件樹中,我們找到<p id='id1'>標籤的previous_element。

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

soup = BeautifulSoup(html, 'lxml')
tag = soup.find('p', id='id1')
print (tag)
pre = tag.previous_element
print ("Previous:",pre)

pre = tag.previous_element.previous_element
print ("Previous:",pre)

輸出

<p id="id1">Tutorial</p>
Previous: Python
Previous: <p>Python</p>

輸出有點奇怪,因為顯示的previous_element是'Python',這是因為內部字串被註冊為previous_element。為了獲得預期的結果(<p>Python</p>)作為previous_element,請獲取內部NavigableString物件的previous_element屬性。

示例2

BeautifulSoup PageElements也支援previous屬性,它類似於previous_element屬性。

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

soup = BeautifulSoup(html, 'lxml')
tag = soup.find('p', id='id1')
print (tag)
pre = tag.previous
print ("Previous:",pre)

pre = tag.previous.previous
print ("Previous:",pre)

輸出

<p id="id1">Tutorial</p>
Previous: Python
Previous: <p>Python</p>

示例3

在下一個示例中,我們嘗試確定id屬性為'age'的<input>標籤旁邊的元素。

from bs4 import BeautifulSoup

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

tag = soup.find('input', id='age')
pre = tag.previous_element.previous
print ("Previous:",pre)

輸出

Previous: <input id="nm" name="name" type="text"/>
廣告
© . All rights reserved.