Python网页抓取问题-数组长度



我从tatrabanka.sk网站上抓取日常课程。他们最近更新了网站,我的脚本返回以下错误。我该怎么做呢?我是否需要使用bs4并下载整个网站?谢谢你的建议。

import pandas as pd
import numpy as np
from datetime import datetime
tmp_url = "https://www.tatrabanka.sk/rest/tatra/exchange/list/20.11.2022-00:00"
pd.read_json(tmp_url)

输出:

...
ValueError: All arrays must be of the same length

完整脚本:

dr = pd.date_range(start = datetime.today().strftime('%m/%d/%Y'), 
end = datetime.today().strftime('%m/%d/%Y'), 
freq = '1440min')
df_date = pd.to_datetime(dr, format = '%Y-%m-%d').strftime('%d.%m.%Y')
df_date = df_date + '-00:00'
url_list = 'https://www.tatrabanka.sk/rest/tatra/exchange/list/' + df_date
smbl = ["USD", "PLN", "HUF", "CZK", "HRK", "RON"]
data = []

tmp_url = "https://www.tatrabanka.sk/rest/tatra/exchange/list/20.11.2022-00:00"
pd.read_json(tmp_url)


for urls in url_list:
print(urls)
dft = pd.read_json(urls)
dft['DateReal'] = urls[51:61]
data.append(dft.loc[dft["feCycd"].isin(smbl)])

out_df = pd.concat(data)

加载Json到一个数据框架试试:

import requests
import pandas as pd
tmp_url = "https://www.tatrabanka.sk/rest/tatra/exchange/list/20.11.2022-00:00"
data = requests.get(tmp_url).json()
df = pd.DataFrame(data["rates"])
print(df)

打印:

id         feDate           feCntr feCycd  feAmnt    feDnrt    feDprt    feDsrt    feVnrt    feVprt    feVsrt feLccy  rateListId status     formattedDate translatedCountry translatedCode                                             flag
0   198  1668985200000        Austrália    AUD       1    1.5868    1.5094    1.5481    0.0000    0.0000    0.0000    EUR       10212      1  21.11.2022 00:00         Austrália            AUD    /templates/tatrabanka/assets/img/flags/au.svg
1   195  1668985200000  Česká republika    CZK       1   24.9790   23.7610   24.3700   25.2230   23.5170   24.3700    EUR       10212      1  21.11.2022 00:00   Česká republika            CZK    /templates/tatrabanka/assets/img/flags/cz.svg
2   192  1668985200000       Chorvátsko    HRK       1    7.7152    7.3388    7.5270    7.9034    7.1506    7.5270    EUR       10212      0  21.11.2022 00:00        Chorvátsko            HRK    /templates/tatrabanka/assets/img/flags/hr.svg
3   194  1668985200000           Dánsko    DKK       1    7.6243    7.2523    7.4383    0.0000    0.0000    0.0000    EUR       10212      1  21.11.2022 00:00            Dánsko            DKK    /templates/tatrabanka/assets/img/flags/dk.svg
4   190  1668985200000         Japonsko    JPY       1  148.2400  141.0000  144.6200    0.0000    0.0000    0.0000    EUR       10212      0  21.11.2022 00:00          Japonsko            JPY    /templates/tatrabanka/assets/img/flags/jp.svg
5   181  1668985200000     Južná Afrika    ZAR       1   18.3326   17.4384   17.8855    0.0000    0.0000    0.0000    EUR       10212      0  21.11.2022 00:00      Južná Afrika            ZAR    /templates/tatrabanka/assets/img/flags/za.svg
6   197  1668985200000           Kanada    CAD       1    1.4193    1.3501    1.3847    0.0000    0.0000    0.0000    EUR       10212      1  21.11.2022 00:00            Kanada            CAD    /templates/tatrabanka/assets/img/flags/ca.svg
7   191  1668985200000         Maďarsko    HUF       1  417.0600  396.7200  406.8900  427.2300  386.5500  406.8900    EUR       10212      0  21.11.2022 00:00          Maďarsko            HUF    /templates/tatrabanka/assets/img/flags/hu.svg
8   189  1668985200000           Nórsko    NOK       1   10.7917   10.2653   10.5285    0.0000    0.0000    0.0000    EUR       10212      1  21.11.2022 00:00            Nórsko            NOK    /templates/tatrabanka/assets/img/flags/no.svg
9   188  1668985200000           Poľsko    PLN       1    4.8218    4.5866    4.7042    4.9394    4.4690    4.7042    EUR       10212      1  21.11.2022 00:00            Poľsko            PLN    /templates/tatrabanka/assets/img/flags/pl.svg
10  187  1668985200000         Rumunsko    RON       1    5.0632    4.8162    4.9397    0.0000    0.0000    0.0000    EUR       10212      1  21.11.2022 00:00          Rumunsko            RON    /templates/tatrabanka/assets/img/flags/ro.svg
11  196  1668985200000      Švajčiarsko    CHF       1    1.0108    0.9614    0.9861    1.0206    0.9516    0.9861    EUR       10212      1  21.11.2022 00:00       Švajčiarsko            CHF    /templates/tatrabanka/assets/img/flags/ch.svg
12  185  1668985200000          Švédsko    SEK       1   11.2559   10.7069   10.9814    0.0000    0.0000    0.0000    EUR       10212      1  21.11.2022 00:00           Švédsko            SEK    /templates/tatrabanka/assets/img/flags/se.svg
13  184  1668985200000          Turecko    TRY       1   20.2097   18.2849   19.2473    0.0000    0.0000    0.0000    EUR       10212      0  21.11.2022 00:00           Turecko            TRY    /templates/tatrabanka/assets/img/flags/tr.svg
14  182  1668985200000              USA    USD       1    1.0593    1.0025    1.0335    1.0697    0.9973    1.0335    EUR       10212      0  21.11.2022 00:00               USA            USD    /templates/tatrabanka/assets/img/flags/us.svg
15  193  1668985200000      V. Británia    GBP       1    0.8910    0.8476    0.8693    0.9084    0.8302    0.8693    EUR       10212      0  21.11.2022 00:00    Veľká Británia            GBP    /templates/tatrabanka/assets/img/flags/gb.svg

过滤数据帧:

smbl = ["USD", "PLN", "HUF", "CZK", "HRK", "RON"]
df = df[df["feCycd"].isin(smbl)]
print(df)

打印:

id         feDate           feCntr feCycd  feAmnt    feDnrt    feDprt    feDsrt    feVnrt    feVprt    feVsrt feLccy  rateListId status     formattedDate translatedCountry translatedCode                                           flag
1   195  1668985200000  Česká republika    CZK       1   24.9790   23.7610   24.3700   25.2230   23.5170   24.3700    EUR       10212      1  21.11.2022 00:00   Česká republika            CZK  /templates/tatrabanka/assets/img/flags/cz.svg
2   192  1668985200000       Chorvátsko    HRK       1    7.7152    7.3388    7.5270    7.9034    7.1506    7.5270    EUR       10212      0  21.11.2022 00:00        Chorvátsko            HRK  /templates/tatrabanka/assets/img/flags/hr.svg
7   191  1668985200000         Maďarsko    HUF       1  417.0600  396.7200  406.8900  427.2300  386.5500  406.8900    EUR       10212      0  21.11.2022 00:00          Maďarsko            HUF  /templates/tatrabanka/assets/img/flags/hu.svg
9   188  1668985200000           Poľsko    PLN       1    4.8218    4.5866    4.7042    4.9394    4.4690    4.7042    EUR       10212      1  21.11.2022 00:00            Poľsko            PLN  /templates/tatrabanka/assets/img/flags/pl.svg
10  187  1668985200000         Rumunsko    RON       1    5.0632    4.8162    4.9397    0.0000    0.0000    0.0000    EUR       10212      1  21.11.2022 00:00          Rumunsko            RON  /templates/tatrabanka/assets/img/flags/ro.svg
14  182  1668985200000              USA    USD       1    1.0593    1.0025    1.0335    1.0697    0.9973    1.0335    EUR       10212      0  21.11.2022 00:00               USA            USD  /templates/tatrabanka/assets/img/flags/us.svg

相关内容

  • 没有找到相关文章

最新更新