<h3>
<span></span>
<span class='headline'>Headline #1</span>
</h3>
<table class='striped'></table>
<h4>
<span class='headline'>Headline #2</span>
</h4>
<table class='striped'></table>
<p>
<span class='headline'>Headline #3</span>
</p>
<ul></ul>
<center>
<table class='striped'></table>
</center>
Это моя структура.Я перечисляю теги таблицы и хочу получить текстовое значение тегов span с классом заголовка, ближайшим к моей таблице.Под «ближайшим» я подразумеваю, что если вы хотите выровнять html, я хочу нацелить интервал на класс «заголовок», который вы встретите первым, если начнете с точки таблицы
Иногда эти промежутки вложены в тег h3, иногда h4, иногда ap.Иногда табличный тег находится на том же уровне, что и h3 / h4 / p, а иногда он сам вложен в центральный тег.И иногда тег h3 / h4 / p является непосредственным братом таблицы, а иногда - нет.
Как я могу использовать BeautifulSoup, чтобы найти ближайший span.headline независимо от уровня вложенности и от того, находится ли он внутри родительского или родного брата?
Пока у меня есть этот код
tables = soup.findAll("table", {"class": ["striped"]})
for index, table in enumerate(tables):
headline = table.find_previous('h3').("span", {"class" : ["headline"]}).text