HTML 片段:
<tr>
<td class="faux_th">Unfinished Carport</td>
<td>336</td>
<td>0</td>
<td>67</td>
</tr>
<tr class="alt">
<td class="faux_th">Finished Encl Porch</td>
<td>96</td>
<td>0</td>
<td>58</td>
</tr>
<tr>
<td class="faux_th">Finished Open Porch</td>
<td>60</td>
<td>0</td>
<td>18</td>
</tr>
<tr class="alt">
<td class="faux_th">Base Area</td>
<td>996</td>
<td>996</td>
<td>996</td>
</tr>
<tr>
<td class="faux_th">Total</td>
<td>1488</td> ##this is the value I need each time
<td>996</td>
<td>1139</td>
</tr>
带有 BS4 的 Python:
houseArea = bs.find('table', {'id': 'ctl00_cphBody_repeaterBuilding_ctl00_gridBuildingArea'})
houseRows = houseArea.findAll('tr')[3]
houseArea1 = str(houseArea)
houseRows = houseRows.findAll('td')[1]
houseRows = str(houseRows)
houseRows = houseRows.replace('<td>', '')
houseRows = houseRows.replace('</td>', '')
这对于我尝试的示例非常有效。当我使用上面包含 5 个 TR 标签的片段时,显然它会中断。我想要完成的是从标有“Total”的 TR 中提取第二个 TD。我已经尝试了各种方法,但我无法找到某种处理方式。有没有办法从反向索引它?如果是这样,“总”TR 的位置总是最后。我的最后一个选择是使用正则表达式来匹配 HTML,但即使从那里我也不确定如何提取我需要的结果。任何关于如何解决这个问题的建议都会很棒。