Как мне извлечь текст под определенным заголовком, который начинается с определенного набора слов

#python

#python

Вопрос:

Я пытаюсь очистить текст в теге H2 под заголовком, который начинается с «преимущества» … так что это может быть похоже на «преимущества игрушек» или «преимущества чашек» и т.д.

HTML-код:

 <h2 class="DrugOverview__title___1OwgG">Benefits of Toys</h2>
 

Код, который я использовал до сих пор

         benfit = soup.find('h2',text='Benefits of')
        q = benefit.get_text(strip=True)
 

Как мне это решить?
Также имейте в виду, что класс h2 нельзя использовать для очистки в этой ситуации (из-за других проблем).

Ответ №1:

мы можем использовать регулярное выражение, чтобы получить какую-то конкретную строку

Я использовал strs в качестве входного содержимого html

Используйте приведенный ниже код:

 import re
strs = '<h2 class="DrugOverview__title___1OwgG">Benefits of Toys</h2><h2 class="DrugOverview__title___1OwgG">Benefits of kids</h2>'
soup = BeautifulSoup(strs, 'html.parser')
pattern = re.compile(r'Benefits of')
benefit =  soup.findAll(text = pattern)
print(benefit)
 

Вывод:

 ['Benefits of Toys', 'Benefits of kids']