Beautiful Soup 4 Python 3.6.5网页抓取实时货币从GBP转换为USD

时间:2018-06-11 21:11:45

标签: python web-scraping beautifulsoup

我正在尝试从这个网站https://www.x-rates.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>

如何从代码中删除标签,以及删除class =“ccOutputCode”中包含的字符串“USD”,以便打印的内容将是浮动“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 :(得分:0)

试试这个。它应该能得到你想要的值。

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

答案 1 :(得分:-2)

我认为这就是你想要的

{{1}}