我正在尝试从this site获取欧元,美元和英镑的实际汇率,但我不知道如何获取。
以下是页面来源的屏幕截图:
这是我正在使用的代码:
import requests
import urllib.request
import time
from bs4 import BeautifulSoup
url = "https://www.nbp.pl/home.aspx?f=/kursy/kursya.html"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
soup.findAll("tr")
for wartosc in soup.findAll("tr"):
print(wartosc.get("td"))
答案 0 :(得分:1)
url = "https://www.nbp.pl/home.aspx?f=/kursy/kursya.html"
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, "lxml")
for itemHtml in soup.select('.pad5 tr'):
currency = ['amerykański','euro','szterling']
if itemHtml.find('td'):
if any (cur in itemHtml.text for cur in currency):
print(itemHtml.text)
结果: dolaramerykański1美元3,8620
欧元1欧元4,3098
fun szterling 1英镑4,8906
答案 1 :(得分:1)
只需拉表并根据需要操作数据框:
import pandas as pd
url = "https://www.nbp.pl/home.aspx?f=/kursy/kursya.html"
tables = pd.read_html(url)
df = tables[43]
df['Kurs średni'] = df['Kurs średni'] / 10000
*输出:**
print (df.to_string())
Nazwa waluty Kod waluty Kurs średni
0 bat (Tajlandia) 1 THB 0.1208
1 dolar amerykański 1 USD 3.8620
2 dolar australijski 1 AUD 2.6588
3 dolar Hongkongu 1 HKD 0.4920
4 dolar kanadyjski 1 CAD 2.8829
5 dolar nowozelandzki 1 NZD 2.5117
6 dolar singapurski 1 SGD 2.7999
7 euro 1 EUR 4.3098
8 forint (Węgry) 100 HUF 1.3192
9 frank szwajcarski 1 CHF 3.8209
10 funt szterling 1 GBP 4.8906
11 hrywna (Ukraina) 1 UAH 0.1466
12 jen (Japonia) 100 JPY 3.4974
13 korona czeska 1 CZK 0.1672
14 korona duńska 1 DKK 0.5771
15 korona islandzka 100 ISK 3.1276
16 korona norweska 1 NOK 0.4413
17 korona szwedzka 1 SEK 0.4004
18 kuna (Chorwacja) 1 HRK 0.5804
19 lej rumuński 1 RON 0.9051
20 lew (Bułgaria) 1 BGN 2.2036
21 lira turecka 1 TRY 0.6335
22 nowy izraelski szekel 1 ILS 1.0686
23 peso chilijskie 100 CLP 0.5559
24 peso filipińskie 1 PHP 0.0736
25 peso meksykańskie 1 MXN 0.2030
26 rand (Republika Południowej Afryki) 1 ZAR 0.2684
27 real (Brazylia) 1 BRL 0.9562
28 ringgit (Malezja) 1 MYR 0.9226
29 rubel rosyjski 1 RUB 0.0600
30 rupia indonezyjska 10000 IDR 2.6589
31 rupia indyjska 100 INR 5.5428
32 won południowokoreański 100 KRW 0.3244
33 yuan renminbi (Chiny) 1 CNY 0.5593
34 SDR (MFW) 1 XDR 5.3180
并过滤数据框
import pandas as pd
url = "https://www.nbp.pl/home.aspx?f=/kursy/kursya.html"
tables = pd.read_html(url)
df = tables[43]
df['Kurs średni'] = df['Kurs średni'] / 10000
currency = ['dolar amerykański','euro','funt szterling']
df_filter = df.loc[df['Nazwa waluty'].isin(currency)]
输出
print (df_filter)
Nazwa waluty Kod waluty Kurs średni
1 dolar amerykański 1 USD 3.8620
7 euro 1 EUR 4.3098
10 funt szterling 1 GBP 4.8906