BeautifulSoup возвращает больше, чем нужно с плавающей запятой

Я пытаюсь загрузить / очистить обменный курс DKK к доллару США с веб-сайта. Мне удалось почти добраться туда. Но этот код возвращает больше, чем с плавающей точкой нет, что мне нужно.

#!/usr/bin/env python
import urllib.request, urllib.error, urllib.parse
from bs4 import BeautifulSoup

url = "http://www.x-rates.com/table/"
page = urllib.request.urlopen(url)
soup_packtpage = BeautifulSoup(page)
page.close()

#First, we will search for the table with class="views-view-grid" as follows:
ratestable = soup_packtpage.find("table",class_="tablesorter ratesTable")

# Find and print the value of Danish Krone to USD - only the floating point no.
print(soup_packtpage.find(text="Danish Krone").findNext('td').contents[0])

Но этот код возвращает больше, чем с плавающей точкой нет, что мне нужно. это возвращает этот беспорядок:

<a href="/graph/?from=USD&amp;to=DKK">7.019776</a>

Может, кто-нибудь объяснит мне, как убрать строку из результата с плавающей запятой, чтобы я мог сохранить ее как переменную?

1 ответ

Решение

Я полагаю, вы хотите другой findNext('a') перед вашим содержанием. Вы хотите сохранить обменный курс, так как он не является валютой сам по себе (например, его точность не должна быть 2sf.).

Например:

USD      Krone
$1.00    kr.7.02
$1000    kr.7019.78

Я не знаком с Прекрасным супом, но это то, что я бы попробовал.

Или, возможно, найти сайт конвертации валют, который использует хорошие имена классов, которые вы могли бы использовать в своем поиске.

На самом деле, глядя на API, этого должно быть достаточно:

print(soup_packtpage.find(text="Danish Krone").findNext('td').string)

Как string просматривает все дочерние теги.

Другие вопросы по тегам