今天是第三天!前面兩天我們完成了開發環境的設置、VS Code的設定,今天終於正式進入寫程式抓資料的環節了,今日目標是:在 Python 虛擬環境中,安裝財經套件,並成功抓取第一筆台積電 (2330.TW) 的近期真實股市數據。
接下來會一步一步呈現。
步驟一:安裝必備套件(yfinance & pandas)
開始前記得再確認一下,免得功虧一簣,開啟VS Code,在終端機確認前方有(venv),再輸入下面的指令。
pip install yfinance pandas
接下來就讓它下載一下,下載完就能進入步驟二了。
步驟二:撰寫第一個抓取股價腳本 (main.py)
點 main.py 那格,在裡面寫下列程式碼。
import yfinance as yf
# 1. 設定股票代碼(台股在 Yahoo Finance 上需加上尾綴 .TW)
ticker = "2330.TW"
# 2. 建立股票物件
stock = yf.Ticker(ticker)
# 3. 取得最近 5 個交易日的歷史資料
df = stock.history(period="5d")
# 4. 印出關鍵數據(開盤價、最高價、最低價、收盤價、成交量)
print("=== 台積電 (2330.TW) 近 5 日股價數據 ===\n")
print(df[["Open", "High", "Low", "Close", "Volume"]])
這邊我將分開解釋!!import yfinance as yf 的意思是匯入 yfinance 這個第三方套件,並給它一個簡稱yf,這樣方便我們後期呼叫。ticker = "2330.TW"這個就是建立一個名為 ticker 的變數,儲存股票代碼字串 "2330.TW"stock = yf.Ticker(ticker)這個是使用 yf.Ticker() 函數,傳入股票代碼,建立一個代表該檔股票的「物件」。df = stock.history(period="5d")這個呢是呼叫 stock.history() 方法,抓取歷史交易資料。period="5d"代表抓取最新的 5 個交易日。print(df[["Open", "High", "Low", "Close", "Volume"]])這是從包含眾多資訊的 df 表格中,只篩選並印出我們關心的 5 個核心欄位。
為什麼有兩層中括號 [[...]]?外層的中括號代表「取值/取欄位」,內層的中括號則是一個「欄位名稱的清單(List)」。
台股的話要在四位代碼後面加上.TW,這樣Yahoo的國際伺服器才知道這是台灣的股票!
步驟三:執行與成果驗證
最後,在終端機內執行下面指令。
python main.py
最後有跑出來的話就是成功了~
小結:
今天用了短短幾行程式碼就可以抓取現實中的數據資料。有了這些之後,後面我們會將這些數據視覺化,用Python畫出屬於我們的K線圖。