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&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
просматривает все дочерние теги.