Tôi đã sử dụng BeautifulSoup trong quá khứ nhưng tôi chống lại điều gì đó mới mẻ; đánh dấu bảng HTML cực kỳ chung chung/tối thiểu ... Mục tiêu của tôi là lấy từng giá trị và nhãn của nó (mỗi cái có td) và in chúng ra ... Chúng có thể được hợp nhất, tôi không quan tâm, tôi chỉ muốn làm đảm bảo mỗi nhãn được áp dụng cho giá trị chính xác. Dưới đây là một bảng ví dụ:Phân tích cú pháp Bảng HTML với 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>
tôi biết làm thế nào để lấy các giá trị ...
for td in soup.findAll('table')[0]: # theres more than one table on the page
print td.renderContents().strip()
nhưng điều này chỉ mang lại cho tôi ....
'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'
Tôi đoán tôi có thể lấy các giá trị lớp "nhãn" và "site_data" nhưng làm cách nào để đảm bảo nhãn và dữ liệu được nhóm chính xác?