На самом деле вы можете сделать это с помощью CSS-селекторов в BeautifulSoup 4.7 +.
Здесь мы нацеливаемся на каждый div
, у которого есть прямой / непосредственный потомок p
с классом example
, который содержит текст TRUE
.
from bs4 import BeautifulSoup,Tag
html="""
<div class="parent">
<p class="example"> TRUE </p>
</div>
<div class="parent">
<p class="example"> TRUE </p>
</div>
<div class="parent">
<p class="example">FALSE </p>
</div>
"""
soup=BeautifulSoup(html,'html.parser')
print(soup.select('div:has(> p.example:contains(TRUE))'))
Выход
[<div class="parent">
<p class="example"> TRUE </p>
</div>, <div class="parent">
<p class="example"> TRUE </p>
</div>]