Beautiful Soup 4 Python 3.6.5 веб-скребинг для конвертации валют в режиме реального времени из GBP в USD - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь почистить веб-страницу для курса обмена GBP к доллару США с этого сайта https://www.x -rate.com / calculator /? From = GBP & to = USD & amount = 1 .

Я определил класс для коэффициента конверсии в HTML приведенной выше ссылки как "ccOutputRslt", однако при печати того, что записано, возвращаемое мне сообщение выглядит так:

<span class="ccOutputRslt">1.338<span class="ccOutputTrail">241</span><span class="ccOutputCode"> USD</s
pan></span>

Как можно удалить теги из кода, а также удалить строку "USD", содержащуюся в class = "ccOutputCode", чтобы напечатанное былос плавающей запятой "1.338241", чтобы преобразование могло иметь место.

вот код Python для моего файла:

import requests
from bs4 import BeautifulSoup
page = requests.get('https://www.x-rates.com/calculator/?from=GBP&to=USD&amount=1')
soup = BeautifulSoup(page.text, 'html.parser')
price_box = soup.find(class_="ccOutputRslt")
rate = price_box
print(rate) #checking the output

def gbp_to_usd(rate,gbp):
    dollars=gpb*rate
    return dollars
gbp = input("Enter GBP amount: ")
finalamt = gbp_to_usd(float(rate),float(gbp))
print(str(gbp)+" GBP is equvalent to "+"$"+str(finalamt)+" USD")

Я все еще очень плохо знаком с Python и программированием в целом, любойПомощь будет принята с благодарностью.

С уважением,

Крис

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Попробуй это.Он должен получить желаемое значение.

import requests
from bs4 import BeautifulSoup

page = requests.get('https://www.x-rates.com/calculator/?from=GBP&to=USD&amount=1')
soup = BeautifulSoup(page.text, 'html.parser')

part1 = soup.find(class_="ccOutputTrail").previous_sibling
part2 = soup.find(class_="ccOutputTrail").get_text(strip=True)
rate = "{}{}".format(part1,part2)

def gbp_to_usd(rate,gbp):
    dollars=gbp*rate
    return dollars

gbp = input("Enter GBP amount: ")
finalamt = gbp_to_usd(float(rate),float(gbp))
print(str(gbp)+" GBP is equvalent to "+"$"+str(finalamt)+" USD")
0 голосов
/ 12 июня 2018

Я думаю, это то, что вы хотите

import requests, re
from bs4 import BeautifulSoup
page = requests.get('https://www.x-rates.com/calculator/?from=GBP&to=USD&amount=1')
soup = BeautifulSoup(page.text, 'html.parser')
price_box = soup.find('span',{'class':'ccOutputRslt'})
rate = price_box.text.replace("USD", ' ')

def gbp_to_usd(rate,gbp):
    dollars=gbp*rate
    return dollars


gbp = input("Enter GBP amount: ")
finalamt = gbp_to_usd(float(rate),float(gbp))
print(str(gbp)+" GBP is equvalent to "+"$"+str(finalamt)+" USD")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...