Используйте функцию Python lambda
, чтобы найти tag
и их text
, а затем разложить ().
from bs4 import BeautifulSoup
data='''<div class='wrap'>
<div class='col'>
<h4 class='h4'>photos</h4>
<h4 class='h4'>videos</h4>
<h4 class='h4'>prototypes</h4>
<h4 class='h4'>weight</h4>
</div>
<div class='col'>
<h4 class='h4'>color</h4>
<h4 class='h4'>selfie</h4>
<h4 class='h4'>front</h4>
<h4 class='h4'>back</h4>
</div>
</div>'''
soup=BeautifulSoup(data,'html.parser')
for item in soup.find_all(lambda tag:tag.name=='h4' and ('photos' in tag.text or 'prototypes' in tag.text) ):
item.decompose()
print(soup)
Выход:
<div class="wrap">
<div class="col">
<h4 class="h4">videos</h4>
<h4 class="h4">weight</h4>
</div>
<div class="col">
<h4 class="h4">color</h4>
<h4 class="h4">selfie</h4>
<h4 class="h4">front</h4>
<h4 class="h4">back</h4>
</div>
</div>