漂亮的汤和桌子

2024-10-01 11:25:53 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我想用漂亮的汤来解析一个html表。 桌子看起来像这样:

<table width=100% border=1 cellpadding=0 cellspacing=0 bgcolor=#e0e0cc>
 <tr>
  <td width=12% height=1 align=center valign=middle  bgcolor=#e0e0cc bordercolorlight=#000000 bordercolordark=white> <b><font face="Verdana" size=1><a href="http://www.dailystocks.com/" alt="DailyStocks.com" title="Home">Home</a></font></b></td>
 </tr>
</table>
<table width="100%" border="0" cellpadding="1" cellspacing="1">
  <tr class="odd"><td class="left"><a href="whatever">ABX</a></td><td class="left">Barrick Gold Corp.</td><td>55.95</td><td>55.18</td><td class="up">+0.70</td><td>11040601</td><td>70.28%</td><td><center>&nbsp;<a href="whatever" class="bcQLink">&nbsp;Q&nbsp;</a>&nbsp;<a href="chart.asp?sym=ABX&code=XDAILY" class="bcQLink">&nbsp;C&nbsp;</a>&nbsp;<a href="texpert.asp?sym=ABX&code=XDAILY" class="bcQLink">&nbsp;O&nbsp;</a>&nbsp;</center></td></tr>
 </table>

我想从第二个表中获取信息,到目前为止,我尝试了以下代码:

^{pr2}$

这似乎不管用,任何帮助都将不胜感激, 谢谢


Tags: tablewidthtrclasstdhrefcenternbsp
1条回答
网友
1楼 · 发布于 2024-10-01 11:25:53

第一个问题是这句话:“t=汤。找(id='table')“没有id为table的内容。我想你的意思是=汤。找('table')”这将查找一个表。不幸的是,它只找到第一个表。在

你可以做到的=芬德尔汤(表)[1]“但这是相当脆弱的。在

我建议如下:

html = file("whatever.html")
soup = BeautifulSoup(html)
rows = soup.findAll("tr", {'class': ['odd', 'even']})
dat = []
for row in rows:
  dat.append( map( str, row.findAll('td') )

产生的dat变量为:

^{pr2}$

编辑:数组索引错误

相关问题 更多 >