之前介紹過:[python抓爬仔]~~輕鬆擷取「台灣銀行即時匯率資料」
使用「twder」這支lib就可以輕鬆抓取台銀的即時牌告匯率資訊。
但這件事情到底是怎麼完成的呢???
這次~~練習、利用python中pandas這之強悍的套件,來練習一下自行抓取、分析台銀牌告匯率資料的方式,順道瞭解pandas的相關應用!
首先~~簡單認識一下:「pandas」是 Python 進行資料處理和資料分析一個好用的工具
有興趣可以到這裡去深入認識「pandas」
話說「pandas」有多強悍呢~~光是他的說明文件就有3000多頁....天啊~是要害死誰啊!
好~~所以囉,別期望一次就把pandas掌握住...
這次我們主要透過抓取台銀網站中的牌告匯率資料,先玩一下已下的相關操作:
1.用pandas抓取網頁中的表格資料
2.使用pandas格式化抓取的表格資料
3.使用pandas將資料儲存至excel檔案
====================================================
好~~從哪著手起呢??
預備動作~當然先確認你已經裝好pandas這支套件囉
動作:pip install pandas (應該很熟悉了吧~有裝過pandas會告訴你,沒裝過會幫你安裝pandas)
接著~~
1.先確認去哪裡抓取「台銀的牌告匯率資料」,別跑錯地方了~~~:
https://rate.bot.com.tw/xrt?Lang=zh-TW
2.查看一下,在台銀的網站中,牌告匯率表格是該網頁中第幾個「表格」!這個資訊,有助於等一下在設計程式時,指定(告知)pandas要抓取的資料位置(重要喔)。查看該網頁,我們初步確認「牌告匯率」資料位於該網頁中「第一組」表格的位置。
有了相關上述相關資訊後,就可以開始上程式碼了~~~很簡短的,別擔心
import pandas
# 指定pandas要抓取資料的網址
pds = pandas.read_html("https://rate.bot.com.tw/xrt?Lang=zh-TW")
table = pds[0] # 解析抓取資料中「第一組」表格資料存放至變數中
table = table.iloc[:, 0:5] # 重設要使用的表格資料
# table.iloc[:, 0:5]~表示要取用[前四個欄位]的[所有資料]
# table.columns~設定表格的欄位名稱
table.columns = ['幣別', '現金買入', '現金賣出', '即期買入', '即期賣出']
# 將表格中的幣別,以正則表達式(regular expression)重設只讀取中文幣別名稱
table['幣別'] = table['幣別'].str.extract('(\w+)')
# 完工~~列印抓取到的牌告匯率表格化資料
print(table)
# 將上述格式化的表格資料儲存成excel格式檔案
table.to_excel('twder.xlsx')
基本上~~就是這麼簡單、扼要就完成了資料抓取、表格化等相關工作!