Używałem BeautifulSoup w przeszłości, ale jestem przeciwko nowemu; niewiarygodnie ogólny/minimalny znacznik tabeli HTML ... Moim celem jest uchwycenie każdej wartości i jej etykiety (każda w osobnej td) i wydrukowanie ich ... Mogą być połączone, nie obchodzi mnie, po prostu chcę zrobić upewnij się, że każda etykieta zostanie zastosowana do poprawnej wartości. Oto przykład tabela:Parsowanie tabel HTML przy użyciu BeautifulSoup
<tbody><tr>
<td class="labels">Dawn:</td>
<td class="site_data" style="text-align: left;">07:01</td>
<td class="labels">Sunrise:</td>
<td class="site_data" style="text-align: left;">07:26</td>
<td class="labels">Moonrise:</td>
<td class="site_data" style="text-align: left;">14:29</td>
<td rowspan="3"><img src="images/moon.bmp" alt="Moon" width="64" align="left" border="0" height="64" style="margin: 0px 10px" /></td>
</tr>
<tr>
<td class="labels">Dusk:</td>
<td class="site_data" style="text-align: left;">18:27</td>
<td class="labels">Sunset: </td>
<td class="site_data" style="text-align: left;">18:02</td>
<td class="labels">Moonset:</td>
<td class="site_data" style="text-align: left;">01:55</td>
</tr>
<tr>
<td class="labels">Daylight:</td>
<td class="site_data" style="text-align: left;">11:26</td>
<td class="labels">Day length:</td>
<td class="site_data" style="text-align: left;">10:36</td>
<td class="labels">Moon Phase:</td>
<td class="site_data" style="text-align: left;">Waxing Gibbous</td>
</tr>
</tbody>
wiem jak chwycić te wartości ...
for td in soup.findAll('table')[0]: # theres more than one table on the page
print td.renderContents().strip()
ale to tylko daje mi ....
'Dawn:'
'07:01'
'Sunrise:'
'07:26'
'Moonrise:'
'14:29'
'<img src="images/moon.bmp" alt="Moon" width="64" align="left" border="0" height="64" style="margin: 0px 10px" />'
'Dusk:'
'18:27'
'Sunset: '
'18:02'
'Moonset:'
'01:55'
'Daylight:'
'11:26'
'Day length:'
'10:36'
'Moon Phase:'
'Waxing Gibbous'
Chyba mogłem chwyć te "etykiety" wartości klas i "site_data", ale jak mogę się upewnić, że etykiety i dane są zgrupowane poprawnie?