2025年10月21日 星期二

, ,

爬取 Yahoo 財經股價資料 / Finance Yahoo API 網址

 要爬取任何網頁資料,首先要先搞清楚該網頁資料的產生方式 - 靜態或動態,許多網站是藉由 API 方式,依據使用者查詢條件產生特定資料,譬如:股票代號、查詢日期等

Yahoo 財經就是此類方式,所以想爬取 Yahoo 財經網站 (Finance Yahoo) 的資料,第一步是先找到正確的 API 網址,有經驗的人能試著自己找,現在多了一個詢問 AI 的方式

以查詢「歷史數據」為範例,網址:https://hk.finance.yahoo.com/quote/%5EVIX/history/,當查詢條件改變時,網址未動,很明顯這一定不是我們要找的真實網址 (API 網址)


方法一:使用 Chrome 開發人員工具找出 Yahoo 財經網站 API

在網站上按下 F12 叫出開發人員工具,切換到 Network / 網路頁籤,可以看到該網頁在網路上傳送及接收的所有資訊,有些網頁很單純,很容易找,Yahoo 網站是屬於資料超多不好找的那種,不過也還好,可以透過搜尋關鍵字試著找到 API 網址


輸入 16.23 查詢後就找到了真實的網址 API URL


Finance Yahoo API URL: https://query1.finance.yahoo.com/v8/finance/chart/%5EVIX?period1=1609459200&period2=1640995200&interval=1d

https://query1.finance.yahoo.com/v8/finance/chart/{股票代號}?period1={開始時間}&period2={結束時間}&interval={間隔}

1. **使用時間範圍參數 (推薦):**
https://query1.finance.yahoo.com/v8/finance/chart/%5EVIX?period1=1609459200&period2=1640995200&interval=1d

2. **使用相對範圍參數:**
https://query1.finance.yahoo.com/v8/finance/chart/%5EVIX?range=1y&interval=1d

方法二:問 AI - 使用 Claude Sonnet 4.5


Yahoo Finance 歷史股價 API 格式

基本格式:

參數說明

  • 股票代號: %5EVIX (^VIX 的 URL 編碼)
  • period1/period2: Unix 時間戳記(秒)
  • range: 相對時間範圍
    • 1d = 1天
    • 5d = 5天
    • 1mo = 1個月
    • 3mo = 3個月
    • 6mo = 6個月
    • 1y = 1年
    • 2y = 2年
    • 5y = 5年
    • max = 所有資料
  • interval: 資料間隔
    • 1m = 1分鐘
    • 5m = 5分鐘
    • 1h = 1小時
    • 1d = 1天
    • 1wk = 1週
    • 1mo = 1個月

回傳資料結構
API 會回傳 JSON 格式,主要資料位於:

  • chart.result[0].timestamp - 時間戳記陣列
  • chart.result[0].indicators.quote[0].open - 開盤價
  • chart.result[0].indicators.quote[0].high - 最高價
  • chart.result[0].indicators.quote[0].low - 最低價
  • chart.result[0].indicators.quote[0].close - 收盤價
  • chart.result[0].indicators.quote[0].volume - 成交量






0 coment�rios:

張貼留言