BeautifulSoup HTML提取表格数据

ivi*_*ica 4 python beautifulsoup extraction

我有这个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>
Run Code Online (Sandbox Code Playgroud)

使用此代码:

tableData = htmlText.find("table", attrs={"class":"tablesorter"})
rows = tableData.findAll('tr')
Run Code Online (Sandbox Code Playgroud)

我将所有表行和表格单元格放在一个列表中.到目前为止,我已经设法逐个提取货币名称,但我真的需要一个货币名称列表,就像这样

currencies = ['Euro','Australian dollar','Canadian dollar']
Run Code Online (Sandbox Code Playgroud)

实现这个目标的方法是什么?稍后,我还需要从每个TR元素的最后一个TD元素中提取数据.

roo*_*oot 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']
Run Code Online (Sandbox Code Playgroud)

对于最后的项目:

In [73]: [tr.findAll('td')[-1].text for tr in soup.findAll('tr')]
Out[73]: [u'111.6092', u'85.4785', u'82.1079']
Run Code Online (Sandbox Code Playgroud)