Вот кое-что, что я думаю, вы должны быть в состоянии работать с. Список capture
отслеживает элементы, которые вы хотите для каждого заголовка. Код использует
find_next_siblings
метод , чтобы получить всех братьев и сестер в дереве и выполнить итерацию
Над ними. Когда он достигает другого тега h2
, он ломается.
soup = BeautifulSoup(content, 'html.parser')
for head in soup.find_all('h2'):
capture = [head]
for sibling in head.find_next_siblings():
if sibling.name == 'h2':
break
capture += [sibling]
Я бы просто изменил способ хранения захваченных тегов.
Редактировать: Забыл упомянуть, что content
- это HTML-строка, представленная в
ваш вопрос.