Issue
Question on beautiful soup in python
I have a HTML like
<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
In this scenario: No I'd or any unique tag's , all containing ---only div tags---
how do I get "THE DATA I WANT" text which is after Qualification thanks in advance
Solution
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:
for item in souped.find_all(lambda t: t.name == 'div' and t.text == 'Qualification'):
print(item.find_next().text)
Answered By - Andrej Kesely
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.