【Python量化資料】Python爬取台灣證交所資料:取得台股每日收盤行情
一、前言
想要台股每日行情嗎!證交所告訴你(https://www.twse.com.tw/zh/page/trading/exchange/MI_INDEX.html)
那麼我來告訴大家要如何簡單用Python把證交所資料下載下來!這邊也給你一篇手把手教學!
進入教學前,不要忘了訂閱按讚分享唷!
部落格教學網站:
https://pixnashpython.pixnet.net/blog
想要即時訂閱最新文章:
https://forms.gle/MdXmiF2HgHhNChL46
訂閱Telegram來接收最新資訊:
https://t.me/joinchat/VUUuDt67Uq5l6CIQ
二、觀察證交所網站
前往證交所網站https://www.twse.com.tw/zh/,而後至每日收盤行情。
選擇全部不含有的沒有。
打開檢查按一下重新整理,可以找到負責取資料的api網址。
進去看一下就可以發現,裡面放著我們要的資料
( https://www.twse.com.tw/exchangeReport/MI_INDEX?response=json&date=20210915&type=ALLBUT0999&_=1631772177731 )
而且仔細一看可以發現他的構造很人性化,有個date的地方,那麼應該就是所要取得資料的日期,
接下來就可以透過此寫一個python的api了。
三、抓取證交所每日收盤行情
其實步驟很簡單,觀察完網址之後,一步一步慢慢解開即可,這邊主要用到requests套件包來進行爬蟲。
(註:json:用於解析json格式)
在 headers = {'User-Agent': 'Mozilla/' + str(Agent) + '.0'} 的部分給予基本的User-Agent即可,很隨意的~
而後用最簡單的get方式就可取得證交所的大表,至於要如何使用就看個人發揮了。
完整程式碼
import pandas, numpy import requests import json import random # 日期 date = datetime.datetime(2021,9,15) # 抓取20210915日的資料 date_f = date.strftime('%Y%m%d') # 格式化日期 # 目標網址 url = 'https://www.twse.com.tw/exchangeReport/MI_INDEX?response=json&date=' + date_f + '&type=ALLBUT0999&_=1620615911060' # 爬蟲 Agent = random.choice([1,2,3,4,5,6,7,8,9]) headers = {'User-Agent': 'Mozilla/' + str(Agent) + '.0'} # 要求的header # 請求資料 re = requests.get(url, headers=headers) data = json.loads(re.text) # 取得目標資料 df = pandas.DataFrame(data['data9']) print(df)
四、後記
大家requests是一個非常好用的套件,但卻有很多眉眉角角,也是資料抓取的好夥伴,大家還有遇上什麼問題可以留言給我唷!
其他更多資料抓取的教學:https://pixnashpython.pixnet.net/blog/category/458424
部落格教學網站:
https://pixnashpython.pixnet.net/blog
想要即時訂閱最新文章:
https://forms.gle/MdXmiF2HgHhNChL46
訂閱Telegram來接收最新資訊:
https://t.me/joinchat/VUUuDt67Uq5l6CIQ