從台灣公開資訊觀測站 (MOPS) 抓取指定上市櫃公司的四大合併財務報表,輸出 .txt (Tab 分隔) 和 .xlsx 兩種格式。
GitHub: https://github.com/weiwei6767/mops-downloader
每季同時下載以下 4 份合併報表:
- 合併資產負債表
- 合併綜合損益表
- 合併權益變動表
- 合併現金流量表
- Python 3.10 以上
- 網路連線(會連到
mopsov.twse.com.tw)
# 0. 從 GitHub 取得程式碼 (擇一)
# 方法 A:git clone
git clone https://github.com/weiwei6767/mops-downloader.git
cd mops-downloader
# 方法 B:直接下載 zip
# 到 https://github.com/weiwei6767/mops-downloader
# 點綠色「Code」→「Download ZIP」,解壓縮後 cd 進去
# 1. (建議) 建立虛擬環境
python -m venv .venv
# Windows 啟動虛擬環境
.venv\Scripts\activate
# macOS / Linux 啟動虛擬環境
source .venv/bin/activate
# 2. 安裝套件
pip install -r requirements.txtpython mops_downloader.py執行後依序輸入:
| 提示 | 範例 | 說明 |
|---|---|---|
| 股票代號 | 2330 |
上市櫃公司代號 |
| 年度 | 2024 或 113 |
西元或民國年都可,會自動換算 |
| 季別 | 4 或 1,2,3,4 |
單季或多季用逗號分隔 |
腳本會自動偵測桌面位置(支援中文/英文 Windows、有/無 OneDrive、macOS、Linux),並建立:
桌面/mops_reports/<股票代號>_民國<年>/
├─ 2330_民國113Q4_合併資產負債表.txt
├─ 2330_民國113Q4_合併資產負債表.xlsx
├─ 2330_民國113Q4_合併綜合損益表.txt
├─ 2330_民國113Q4_合併綜合損益表.xlsx
└─ ...
若找不到桌面會 fallback 到家目錄。
- 公告時程:最新一季財報需等公司公告後才能抓到,否則會顯示「查無資料」並跳過。各季公告期限:Q1=5/15、Q2=8/14、Q3=11/14、Q4=隔年 3/31。
- 下載間隔:每份報表之間有 1.2 秒延遲,避免對 MOPS 伺服器造成負擔。
- 編碼:輸出的
.txt為 UTF-8 with BOM,Excel 雙擊可直接開啟不亂碼。 - 多層表頭:MOPS 報表有多層表頭,腳本會自動攤平成
主標 / 子標 / 欄名的形式。
Q: 執行時顯示「缺少必要套件」?
A: 沒裝 requirements,請執行 pip install -r requirements.txt。
Q: 顯示「查無資料」? A: 該公司該季尚未公告,或公司代號錯誤。可至 MOPS 網站 確認。
Q: Excel 開啟 .txt 中文變亂碼?
A: 不要直接雙擊 .txt 開到 Excel,請改用 .xlsx 那個檔,或在 Excel 用「資料 → 從文字/CSV」匯入並選 UTF-8。
公開資訊觀測站 MOPS:https://mops.twse.com.tw/mops/#/web/home
僅供個人學習研究使用,請勿用於商業用途或對伺服器造成大量請求。
本專案採用 MIT License,可自由使用、修改、散布。