簡體   English   中英

在美麗的湯中找到下一個 div 標簽

[英]Find next div tag in beautiful soup

python 中的美湯問題

我有一個 HTML 之類的

<div class="content">Somedata</div>
<div class="content">Somedata</div>
<div class="content">Qualification</div>
<div class="content">THE DATA I WANT</div>
<div class="content">Somedata</div>
<div class="content">Somedata</div>

相同的 div 標簽再次重復

在這種情況下:不,我會或任何唯一標簽,都包含 ---only div 標簽---

我如何獲得資格后的“我想要的數據”文本提前謝謝

txt = '''
<div class="content">Somedata</div>
<div class="content">Somedata</div>
<div class="content">Qualification</div>
<div class="content">THE DATA I WANT</div>
<div class="content">Somedata</div>
<div class="content">Somedata</div>'''

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

print(soup.select_one('div:contains("Qualification") ~ div').text)

印刷:

THE DATA I WANT

或者:

print(soup.find(text="Qualification").find_next().text)

或者:

print(soup.find(lambda t: t.find_previous() and t.find_previous().text == 'Qualification').text)

編輯:要遍歷<div> s,您可以使用簡單的 for 循環:

for item in souped.find_all(lambda t: t.name == 'div' and t.text == 'Qualification'):
    print(item.find_next().text)

你可以試試:

from bs4 import BeautifulSoup

html_doc ='''<div class="content">Somedata</div>
<div class="content">Somedata</div>
<div class="content">Qualification</div>
<div class="content">THE DATA I WANT</div>
<div class="content">Somedata</div>
<div class="content">Somedata</div>'''

soup = BeautifulSoup(html_doc, 'lxml')

result = soup.find_all("div", class_="content")[3].text

print(result)

Output 將是:

THE DATA I WANT

或者

import re
soup = BeautifulSoup(html_doc, 'lxml')
print(soup.find(text=re.compile('^THE DATA I WANT$')))

或者

print(soup.find(string="Qualification").find_next().text)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM