[英]Find next div tag in beautiful soup
Question on beautiful soup in python python 中的美汤问题
I have a HTML like我有一个 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>
same div tags repeats again相同的 div 标签再次重复
In this scenario: No I'd or any unique tag's, all containing ---only div tags---在这种情况下:不,我会或任何唯一标签,都包含 ---only div 标签---
how do I get "THE DATA I WANT" text which is after Qualification thanks in advance我如何获得资格后的“我想要的数据”文本提前谢谢
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)
Prints:印刷:
THE DATA I WANT
Or:或者:
print(soup.find(text="Qualification").find_next().text)
Or:或者:
print(soup.find(lambda t: t.find_previous() and t.find_previous().text == 'Qualification').text)
EDIT: To iterate over <div>
s you can use simple for-loop:编辑:要遍历
<div>
s,您可以使用简单的 for 循环:
for item in souped.find_all(lambda t: t.name == 'div' and t.text == 'Qualification'):
print(item.find_next().text)
You can try it:你可以试试:
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 will be: Output 将是:
THE DATA I WANT
OR或者
import re
soup = BeautifulSoup(html_doc, 'lxml')
print(soup.find(text=re.compile('^THE DATA I WANT$')))
OR或者
print(soup.find(string="Qualification").find_next().text)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.