если в заголовках нет таких дочерних тегов, как
<h3 class="vc_custom_heading">Artificial Intelligence</h3>
, вы можете объединить свое регулярное выражение
results = soup.body.find_all(re.compile('^h[1-6]$'),
string=re.compile(searched_word))
, но ваш h3
содержит дочерний тег, я создам цикл какпервый ответ или создание пользовательской функции для передачи find_all()
def head_contain_word(tag):
return re.match(r'^h[1-6]$', tag.name) \
and searched_word in tag.text
searched_word = 'Artificial Intelligence'
soup = bs4.BeautifulSoup(data, 'html.parser')
results = soup.body.find_all(head_contain_word)
результаты:
[<h3 class="vc_custom_heading titel-left wow" data-wow-delay="0.3s">
\n<span class="titel-line"></span>Artificial Intelligence </h3>]