透過 API 來抓取資料算是一個滿基本的能力, 以下用一個簡單的例子來抓取匯率資料. 抓取API主要用到的 library 為 requests, 我們只用 GET() 的方式來獲取 data.
# Get Daily Exchange rate via API
import requests
url = "https://tw.rter.info/capi.php"
def get_data(url):
return requests.get(url).json()
data = get_data(url)
抓下的資料如下圖.
格式化後.
{
'USDFKP': {'Exrate': 0.787478, 'UTC': '2024-01-18 20:59:59'},
'USDITL': {'Exrate': 1700.272217, 'UTC': '2017-02-24 19:34:31'},
'USDCNH': {'Exrate': 7.21697, 'UTC': '2024-01-18 20:59:59'},
'USDLAK': {'Exrate': 20668.37752, 'UTC': '2024-01-18 20:59:59'},
'USDZMW': {'Exrate': 26.365381, 'UTC': '2024-01-18 20:59:59'},
'USDAOA': {'Exrate': 831.5, 'UTC': '2024-01-18 20:59:59'},
'USDTTD': {'Exrate': 6.790277, 'UTC': '2024-01-18 20:59:59'},
'USDNAD': {'Exrate': 19.055, 'UTC': '2024-01-18 20:59:59'},
'USDUSD': {'Exrate': 1.0, 'UTC': '2024-01-18 20:59:59'},
'USDSVC': {'Exrate': 8.750276, 'UTC': '2024-01-18 20:59:59'},
'USDMXN': {'Exrate': 17.187937, 'UTC': '2024-01-18 20:59:59'},
...
}
我們可以透過迴圈的方式把資料取出來, 並存到另外的 DF 或是 DB.
# 讀取API data
api_data = []
for k, v in data.items():
row = []
# # From
row.append(k[0:3])
# To
row.append(k[3:])
# exchange rate
row.append(v['Exrate'])
# timestamp
row.append(v['UTC'])
api_data.append(row)
取出後的資料如下.
透過這個方式, 可以相當方便的提取的很多好用的訊息.
0 留言