使用beautifulsoup来解析表中的数据

时间:2013-11-25 12:11:07

标签: python

我尝试使用BeautifulSoup从表格中导入表格中金银价格的链接中输入数据。我得到以下输出..请告诉我如何才能获得第一个信息我的输出即卢比。 50550 / - 。很抱歉问新手问题。我尝试了很多但似乎没什么帮助..提前谢谢。

>>> from bs4 import BeautifulSoup
>>> from urllib2 import urlopen
>>> response = urlopen('http://goldratenepal.com')
>>> table = soup.findChildren('table')
>>> my_table = table[2]
>>> rows = my_table.findChildren(['th class','tr'])
>>> for row in rows:
    cells = row.findChildren('td')
    for cell in cells:
        value = cell.string
        print value

输出:

卢比。 50550 / - 卢比。 50650 / - 卢比。 880 / - Rs.43324 / - 卢比。 43424 / - Rs754 / -

有关信息:此网页的html文件如下所示:

<table align="center" id="rockartists">
    <thead>
        <tr>
            <th class="null">Gold rate of 2013-05-22</th>
            <th class="stones">Gold Rate in Kathmandu</th>
            <th class="stones">Gold Rate in Pokhara</th>
            <th class="u2">Silver</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th class="">Per 25gm</th>
            <td class="stones">Rs. 50550 /- </td>
            <td class="stones">Rs. 50650 /- </td>
            <td class="u2">Rs. 880 /-</td>
        </tr>
        <tr>
            <th class="">Per 10 gm </th>
            <td class="stones">Rs.43324/- </td>
            <td class="stones">Rs. 43424 /- </td>
            <td class="u2">Rs.754 /- </td>
        </tr>
    </tbody>
</table>

1 个答案:

答案 0 :(得分:0)

您只需选择包含td标记和class="stones"属性的第一个找到的元素。

from bs4 import BeautifulSoup
from urllib2 import urlopen

response = urlopen('http://goldratenepal.com')
html = response.read()
soap = BeautifulSoup(html)
result = soap.find_all('td' ,{'class': 'stones'})

print result[0].text