У меня есть структура данных при синтаксическом анализе XML с красивым супом:
<h2>Fri 4 May</h2><table cellspacing="0" cellpadding="12">
<tr>
<td class="time ">6:00am</td>
<td class="other-details ">
<a class="prog-link" href="http://www.tvguide.co.uk/m-detail/157702075/137913159/breakfast" id="308829348" >
<div class="title" style="border-left:4px solid #CE3D32">
Breakfast
</div>
<div class="detail">
A round-up of national and international news, plus current affairs, arts and entertainment, and weather
<div class="other">
(Subtitles) (Interactive)
</div>
<br>
<div class="rating">Rating: <span class="rating-num">1.5</span></div>
</div>
</a>
</td>
</tr>
...
...
...
</table>
Существует несколько таких структур в хронологическом порядке, в которых имеются данные телегида для последовательных дней.
Код, который я имею в данный момент, выглядит так:
for x in soup.select('h2'):
for tr in soup.select('table tr'):
if not tr.script:
for td in tr.find_all('td'):
a = ''.join(re.sub(r'\s+', ' ', td.text))
b = a.strip()
#print x.text
#print b
if b[:1] in '0123456789':
date_list.append(b)
else:
if ' Rating' in b:
c = b.split(' Rating')
else:
c = b.split(' Rating')
c.append(0.0)
desc = c[0]
desc_list.append(desc)
rating = ''.join(['Rating: ', str(c[1])])
rating_list.append(rating)
Однако, это дает мне каждый блок во всех возможных датах для КАЖДОГО экземпляра даты, как определено в теге <h2>
. Что я действительно хочу в логическом порядке:
- Интегрируйте через каждый
<h2>
тег даты в порядке.
- Печатать только блок
<table>
, принадлежащий этому дню.
Я почти у цели, просто не могу понять, какую последнюю поправку мне нужно внести.