Beautiful Soup - next_element 屬性



方法描述

在 Beautiful Soup 庫中,next_element 屬性返回緊挨著當前 PageElement 的 Tag 或 NavigableString,即使它在父樹之外。還有一個 next 屬性具有類似的行為。

語法

Element.next_element

返回值

next_element 和 next 屬性返回緊挨著當前標籤的標籤或 NavigableString。

示例 1

在從給定 HTML 字串解析的文件樹中,我們找到 <b> 標籤的 next_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.b 
print (tag)
nxt = tag.next_element
print ("Next:",nxt)

nxt = tag.next_element.next_element
print ("Next:",nxt)

輸出

<b>Excellent</b>
Next: Excellent
Next: <p>Python</p>

輸出有點奇怪,因為 <b>Excellent</b> 的下一個元素顯示為 'Excellent',這是因為內部字串被註冊為下一個元素。要獲得所需的結果(<p>Python</p>)作為下一個元素,請獲取內部 NavigableString 物件的 next_element 屬性。

示例 2

BeautifulSoup PageElements 也支援 next 屬性,它類似於 next_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.b 
print (tag)
nxt = tag.next
print ("Next:",nxt)

nxt = tag.next.next
print ("Next:",nxt)

輸出

<b>Excellent</b>
Next: Excellent
Next: <p>Python</p>

示例 3

在下一個示例中,我們嘗試確定 <body> 標籤後面的元素。由於它後面跟著一個換行符 (\n),我們需要找到緊挨著 body 標籤後面的元素的下一個元素。它恰好是 <h1> 標籤。

from bs4 import BeautifulSoup

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

tag = soup.find('body')
nxt = tag.next_element.next
print ("Next:",nxt)

輸出

Next: <h1>TutorialsPoint</h1>
廣告

© . All rights reserved.