2021年1月24日 星期日

【python抓爬仔】~~小試pandas模組~用pandas簡單完成擷取台銀牌告匯率資料

 之前介紹過:[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')

基本上~~就是這麼簡單、扼要就完成了資料抓取、表格化等相關工作!


其中~~有可能發生問題的地方在於:轉換儲存成excel格式失敗

會發生失敗的原因主要就是缺乏了excel轉檔的相關套件:「openpyxl」囉~~~


咱辦咧??~~就裝起來嘛...........


但安裝期間,應該會需要使用到編譯工具:cmake

記得要先去把cmake下載安裝起來喔!


好囉~~~這次就小試pandas一下,有機會再繼續介紹、分享玩樂心得了!

沒有留言:

張貼留言