使用BeautifulSoup提取HTML表格数据
我有一个HTML表格,我需要从中获取一些数据:
<table id="curFullTable" class="tablesorter" style="width:728px;margin-left:auto;margin-right:auto;">
<tr>
<td>Euro</td>
<td align="center">EUR</td>
<td align="center">€</td>
<td align="center">1</td>
<td align="center">110.9416</td>
<td align="center">111.2754</td>
<td align="center">111.6092</td>
</tr>
<tr>
<td>Australian dollar</td>
<td align="center">AUD</td>
<td align="center">$</td>
<td align="center">1</td>
<td align="center">84.9671</td>
<td align="center">85.2228</td>
<td align="center">85.4785</td>
</tr>
<tr>
<td>Canadian dollar</td>
<td align="center">CAD</td>
<td align="center">$</td>
<td align="center">1</td>
<td align="center">81.6167</td>
<td align="center">81.8623</td>
<td align="center">82.1079</td>
</tr>
</table>
用这段代码:
tableData = htmlText.find("table", attrs={"class":"tablesorter"})
rows = tableData.findAll('tr')
我把所有的表格行和表格单元格都放在一个列表里。目前我已经成功提取了一个个的货币名称,但我其实需要的是一个货币名称的列表,像这样:
currencies = ['Euro','Australian dollar','Canadian dollar']
那该怎么做呢?之后我还需要从每个表格行的最后一个单元格中提取数据。
1 个回答
5
In [70]: from bs4 import BeautifulSoup
In [71]: soup = BeautifulSoup(html)
In [72]: [tr.find('td').text for tr in soup.findAll('tr')]
Out[72]: [u'Euro', u'Australian dollar', u'Canadian dollar']
In [73]: [tr.findAll('td')[-1].text for tr in soup.findAll('tr')]
Out[73]: [u'111.6092', u'85.4785', u'82.1079']
对于最后几个项目: