爬取台湾银行牌告汇率
这篇文章会使用 Python 的 Requests 函数库,实作一个爬取台湾银行营业时间的牌告汇率的网络爬虫。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
台湾银行牌告汇率
每间银行都有各自的牌告汇率,本篇范例采用“台湾银行”的牌告汇率网页。
台湾银行牌告汇率网页:https://rate.bot.com.tw/xrt
在网页的最下方,有“下载文字档”和“下载 CSV”两个按钮,将鼠标移动到“下载 CSV”的按钮上方,按下鼠标右键,选择“复制链接网址”,就能复制牌告汇率的 CSV 文件网址。
爬取牌告汇率 CSV
取得 CSV 网址后,使用 Requests 函数库爬取网址内容,如果只是爬取内容没做任何处理,会发现出现一大堆乱码,这是因为没有使用正确的编码去读取 CSV 文件,这时可以加上“rate.encoding = 'utf-8'”就能处理乱码问题,乱码问题处理完成后,读取文件为纯文字,并用换行与逗号拆分,就能取得币别和汇率。
import requests
url = 'https://rate.bot.com.tw/xrt/flcsv/0/day' # 牌告匯率 CSV 網址
rate = requests.get(url) # 爬取網址內容
rate.encoding = 'utf-8' # 調整回應訊息編碼為 utf-8,避免編碼不同造成亂碼
rt = rate.text # 以文字模式讀取內容
rts = rt.split('\n') # 使用「換行」將內容拆分成串列
for i in rts: # 讀取串列的每個項目
try: # 使用 try 避開最後一行的空白行
a = i.split(',') # 每個項目用逗號拆分成子串列
print(a[0] + ': ' + a[12]) # 取出第一個 ( 0 ) 和第十三個項目 ( 12 )
except:
break
小结
为什么选择台湾银行作为爬取的对象呢?因为它的牌告汇率网页相对其他银行来说较为单纯,又有提供现成的 txt 和 CSV,对于爬虫来说越简单的网页越好爬,所以就选择台湾银行作为爬取的对象了。爬取汇率后,可以更近一步使用 CSV 储存,或筛选出特定的汇率,借由 LINE Notify 发送消息,就更能发挥出将爬虫功能。
微信扫码关注
抖音扫码关注