前言
這篇文章將分享如何利用 Python 工具,自動化從公開資訊觀測站(MOPS)與 Yahoo Finance 抓取台灣市場(上市、上櫃、興櫃)的月營收財報與歷史股價。我們將建立一個本地端資料庫,並將其同步至免費的雲端資料庫 Supabase,作為後續視覺化分析的基礎。
步驟一:準備開發環境
本教學使用 Google Colab,你不需要在電腦安裝任何環境,只需開啟專案連結即可。
- 開啟專案:點擊進入 StockRevenueLab GitHub。

- 開啟 Colab:在 GitHub 頁面中點擊
Open In Colab圖示,或直接將.ipynb檔案上傳至 Google Colab。
或者直接點選「財報儀表板相關程式碼」_github.ipynb
出現如下畫面 如果設定好密碼以及專案ID 基本上就可以按全部執行

- 申請 Supabase:
- 前往 Supabase 官網 註冊帳號。建議用Github即可

登入後
建立新專案
輸入密碼

project 如下畫面可以取得 點選專案進入後點選左下角的齒輪圖案後就可以取得Project ID

- 建立新專案(Project)。
- 記下你的 Project Ref(專案 ID) 與 Service Role 密碼。
然後在colab上輸入以下資料

步驟二:抓取全市場資料 (Local 精煉)
Colab 中的前幾個 Cell 會協助你在雲端主機上建立一個名為 local_taiwan_stock.db 的 SQLite 資料庫。
- 股價抓取:自動從證交所抓取最新的證券清單(含 ETF、TDR、創新板),並透過
yfinance下載 2020 年至今的日 K 資料。 - 財報抓取:自動爬取 MOPS 過去 80 個月的月營收資料,並處理民國/西元轉換與資料清洗。
💡 小技巧:程式碼內建「雙主機 Fallback」機制,如果 MOPS 舊網址失效,會自動切換新網址,確保資料抓取不中斷。
步驟三:設定 Supabase 並執行智慧同步
當本地資料庫(SQLite)準備好後,我們需要將資料推送到雲端。
- 修改連線資訊:在程式碼中尋找以下區塊,填入你的 Supabase 資訊:
PythonDB_PASSWORD = "你的 Supabase Service Role 密碼" PROJECT_REF = "你的專案 ID" - 執行智慧同步:
- 程式會自動檢查 Supabase 上已有的資料日期。
- 只上傳新增的股價紀錄,避免重複上傳大筆舊資料,提升效率。
步驟四:自動生成週 K 與年 K (雲端聚合)
資料上傳後,最後一個單元會利用 SQL 指令在 Supabase 中自動生成聚合報表:
- 還原股價清洗:自動剔除因減資或併購產生的極端異常震盪(如 8476 台境的案例)。
- 多維度 K 線:自動生成
stock_weekly_k(週線) 與stock_annual_k(年線),方便你計算年化報酬率或觀察長線趨勢。
在streamit網頁點選右上角 Create app

點選Deploy a public app from GitHub

點選github專案中的StockRevenueLab 然後檔案點選app.py,再按Deploy套用就可以開啟儀表板了

StockRevenueLab 的儀表板就會出現在如下圖,
接著點選Settings

然後點選Secrets 輸入以下變數後 點選 Save changes離開

就可以點選儀表板開始使用了








