我想快速从www.xoom.com获取当天的汇率
这是我到目前为止所做的:
import requests
from bs4 import BeautifulSoup
r = requests.get('https://www.xoom.com')
data = r.text
soup = BeautifulSoup(data)
接下来,在查看该网页的源代码后,我知道这里提到了汇率:
<p class="xcma-fx-rate">Current locked-in exchange rate* <em class="fx-rate">1 USD = 60.1500 INR</em></p>
我尝试了几件事:
soup.find_all('div class')
但它给了我一个空数组:[]
我如何降低汇率?
答案 0 :(得分:1)
试试这个:
text_rate = soup.find('em',attrs={'class':'fx-rate'}).getText()
此外,使用lmxl
,假设元素确实在页面上,您可以通过此代码获得费率:
import requests
import lxml.html
r = requests.get('https://www.xoom.com/india/send-money')
data = r.text
tree = lxml.html.fromstring(data)
rate = tree.xpath("//em[@class='fx-rate']")
print rate[0].text_content()
打印1 USD = 60.1500 INR
答案 1 :(得分:0)
首先,我抓错了页面。
因为我已多次打开该网站,当我在浏览器中打开它时,它会自动向我显示一个“印度”网站。在主页地址的汇率页面(检查我的机器中存储的一些cookie后我猜)。但是,当我使用Python获取时,这不会发生。所以我需要明确说明要获取的正确页面。这是提到费率的地方:xoom.com/india/send-money
现在正确的代码是:
import requests
from bs4 import BeautifulSoup
r = requests.get('https://www.xoom.com/india/send-money')
data = r.text
soup = BeautifulSoup(data)
for rate in soup.find_all('em'):
print rate.text
答案 2 :(得分:0)
我也在抓取时尝试使用提供的代码,我想我找到了该代码的解决方案:
如果需要,您可以替换链接:
import requests
import lxml.html
r = requests.get('https://www.xoom.com/philippines/send-money')
data = r.text
tree = lxml.html.fromstring(data)
rate = tree.xpath("//div[@class='js-exchange-rate']")
rate[0].text_content()
我正在使用Python 3.8和Anaconda
结果是:
' 1 USD = 49.1238 PHP* '