close

【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/,而後至每日收盤行情。

image

 

選擇全部不含有的沒有。

image

 

打開檢查按一下重新整理,可以找到負責取資料的api網址。

image

 

進去看一下就可以發現,裡面放著我們要的資料

( https://www.twse.com.tw/exchangeReport/MI_INDEX?response=json&date=20210915&type=ALLBUT0999&_=1631772177731 )

而且仔細一看可以發現他的構造很人性化,有個date的地方,那麼應該就是所要取得資料的日期,

接下來就可以透過此寫一個python的api了。

image

 

 

三、抓取證交所每日收盤行情


其實步驟很簡單,觀察完網址之後,一步一步慢慢解開即可,這邊主要用到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)

image

 

 

四、後記


大家requests是一個非常好用的套件,但卻有很多眉眉角角,也是資料抓取的好夥伴,大家還有遇上什麼問題可以留言給我唷!

其他更多資料抓取的教學:https://pixnashpython.pixnet.net/blog/category/458424

 

部落格教學網站:
https://pixnashpython.pixnet.net/blog
想要即時訂閱最新文章:
https://forms.gle/MdXmiF2HgHhNChL46
訂閱Telegram來接收最新資訊:
https://t.me/joinchat/VUUuDt67Uq5l6CIQ

arrow
arrow

    恩哥Python 發表在 痞客邦 留言(0) 人氣()