2013-11-25 2 views
3

Я попытался использовать BeautifulSoup для импорта данных из таблицы по ссылке, в которой скорость золота и серебра указана в таблице. И я получаю следующий вывод. Пожалуйста, расскажите мне, как я могу получить только первую информацию в моем выпуске, т.е. Rs. 50550/-. Извините за вопрос о новичке. Я много пробовал, но ничего не помогает. Спасибо заранее.using beautifulsoup для анализа данных из таблицы

>>> 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 

Выход:

Rs. 50550/- Rs. 50650/- Rs. 880/- Rs.43324/- Rs. 43424/- Rs.754/-

Для информации: 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> 
+0

Можете ли вы предоставить соответствующий html? – aIKid

+1

Я добавил файл html на сообщение .. Спасибо ..! – Tirthajust4u

ответ

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 
+0

Спасибо за ответ. – Tirthajust4u

Смежные вопросы