iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
AI & Data

從網路爬蟲到資料洞察的應用系列 第 2

介紹 TWSE 官網 API 格式(JSON、CSV),理解 URL 結構

  • 分享至 

  • xImage
  •  

昨天完成了環境設定,那今天我們要來了解台灣證交所 (TWSE) 提供的公開 API。TWSE 官網雖然沒有寫「API 文件」,但實際上很多股市資料都能用 URL 直接取得,格式包含 JSON 與 CSV。

為什麼要先了解 API 格式?

在寫爬蟲或資料分析之前,先搞清楚 API 回傳的格式非常重要。

  • JSON:結構清楚,容易用 Python 的 requests + json() 解析。
  • CSV:表格型資料,適合直接用 pandas 讀取並分析。

TWSE API 基本範例

舉例來說,如果要抓取 每日收盤行情(stock_day),URL 會長這樣:
https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20240901&stockNo=2330

拆解一下:

  • exchangeReport/STOCK_DAY → API 功能(這裡是「個股月成交資訊」)。
  • response=json → 回傳格式(可改成 csv)。
  • date=20240901 → 查詢日期(YYYYMMDD,這裡代表 2024 年 9 月份)。
  • stockNo=2330 → 股票代號(2330 = 台積電)。

如果想要 CSV 格式,只要把 response=json 改成 response=csv 即可:
https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=csv&date=20240901&stockNo=2330

JSON 與 CSV 的差異

  • JSON 範例(縮短後)
{
  "stat": "OK",
  "date": "20240901",
  "title": "臺灣積體電路製造股份有限公司 各日成交資訊",
  "fields": ["日期", "成交股數", "成交金額", "開盤價", "最高價", "最低價", "收盤價", "漲跌價差", "成交筆數"],
  "data": [
    ["113/09/02","35,000,000","21,000,000,000","570.0","575.0","568.0","572.0","+2.0","15,000"],
    ["113/09/03","38,000,000","22,000,000,000","575.0","582.0","572.0","580.0","+8.0","18,000"]
  ]
}
  • CSV 範例(前幾行)
"日期","成交股數","成交金額","開盤價","最高價","最低價","收盤價","漲跌價差","成交筆數"
"113/09/02","35,000,000","21,000,000,000","570.0","575.0","568.0","572.0","+2.0","15,000"
"113/09/03","38,000,000","22,000,000,000","575.0","582.0","572.0","580.0","+8.0","18,000"

Python 讀取範例

  • 讀取 JSON
import requests

url = "https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20240901&stockNo=2330"
res = requests.get(url)
data = res.json()

print(data["title"])  # 臺灣積體電路製造股份有限公司 各日成交資訊
print(data["fields"]) # 欄位名稱
print(data["data"][0]) # 第一筆資料
  • 讀取 CSV
import pandas as pd

url = "https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=csv&date=20240901&stockNo=2330"
df = pd.read_csv(url)

print(df.head())

那今天就先這樣。
/images/emoticon/emoticon29.gif


上一篇
前言與設定環境
下一篇
利用 twstock 套件快速取得股市資料
系列文
從網路爬蟲到資料洞察的應用3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言