问题:从本地银行网站获取汇率

我需要从我当地的银行网站刮取 01.01.2016 的历史汇率表。我需要 Pandas 数据框(表格)中的美元、PLN、HUF、EUR、CZK 汇率以及日期。

我的代码:

from bs4 import BeautifulSoup
import requests

page = requests.get("https://www.tatrabanka.sk/sk/personal/kurzovy-listok/01.01.2016-00:00")
print(page.status_code)
soup = BeautifulSoup(page.content, 'html.parser')
table = soup.find(lambda tag: tag.name=='table')
print(table)

但是输出表是空的,你能帮忙吗?谢谢。

解答

数据从外部 URL 加载。您可以使用pd.read_json()将其加载到数据框中:

import pandas as pd
    
json_url = "https://www.tatrabanka.sk/rest/tatra/exchange/list/01.01.2016-00:00"

skratky = ["USD", "PLN", "HUF", "EUR", "CZK"]

df = pd.read_json(json_url)
print(df.loc[df["feCycd"].isin(skratky)])

印刷:

       id         feDate           feCntr feCycd  feAmnt    feDnrt    feDprt    feDsrt    feVnrt    feVprt    feVsrt feLccy  rateListId  status     formattedDate translatedCountry translatedCode                                           flag
1   23253  1451862000000  Česká republika    CZK       1   27.3730   26.6710   27.0220   27.8330   26.2110   27.0220    EUR        5764       0  04.01.2016 00:00   Česká republika            CZK  /templates/tatrabanka/assets/img/flags/cz.svg
7   23249  1451862000000         Maďarsko    HUF       1  319.7100  311.5100  315.6100  328.0800  303.1400  315.6100    EUR        5764       1  04.01.2016 00:00          Maďarsko            HUF  /templates/tatrabanka/assets/img/flags/hu.svg
9   23246  1451862000000           Poľsko    PLN       1    4.3210    4.2100    4.2655    4.4340    4.0970    4.2655    EUR        5764       1  04.01.2016 00:00            Poľsko            PLN  /templates/tatrabanka/assets/img/flags/pl.svg
15  23241  1451862000000              USA    USD       1    1.1027    1.0689    1.0885    1.1212    1.0558    1.0885    EUR        5764       0  04.01.2016 00:00               USA            USD  /templates/tatrabanka/assets/img/flags/us.svg
Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐