ブログ - Pythonで株価を取得する yfinance
yfinanceというライブラリを使うと日本の株価が取得できるというのでやってみた.
まず,yfinanceライブラリをインストール.
トヨタ自動車の株価を取得してみる.
実行してみる.
「引数 auto_adjust のデフォルトを True に変更しました」というワーニングが出たけど,株価は取得できている模様.
汎用化するために,銘柄コードと開始・終了年月日をパラメータ化した.
実行してみる.
なんかデータが取得できない.色々やっていたらわかってきた.
この場合,10月1日 00:00amから10月2日 00:00amまでの時間の範囲で取得しているのではないか.
今日は日曜日なので,相場が開いている時にこれを実行したら,どれくらいの遅延で取得できるのか確認できるね.
まず,yfinanceライブラリをインストール.
$ pip3 install yfinance🆑
トヨタ自動車の株価を取得してみる.
$ cat toyota.py🆑
import yfinance as yf
data = yf.download("7203.T", start="2025-08-29", end="2025-09-05")
print(data["Close"])
$
$ python3 toyota.py🆑
toyota.py:3: FutureWarning: YF.download() has changed argument auto_adjust default to True
data = yf.download("7203.T", start="2025-08-29", end="2025-09-05")
[*********************100%***********************] 1 of 1 completed
Ticker 7203.T
Date
2025-08-29 2829.462402
2025-09-01 2815.182129
2025-09-02 2825.522949
2025-09-03 2808.288086
2025-09-04 2860.977539
$
汎用化するために,銘柄コードと開始・終了年月日をパラメータ化した.
$ cat GetStockData.py🆑
import sys
import yfinance as yf
from datetime import datetime
# 引数チェック
if len(sys.argv) != 4:
print("使い方: python get_stock.py <銘柄コード> <開始日> <終了日>")
print("例: python get_stock.py 7203.T 2025-08-29 2025-09-05")
sys.exit(1)
# 引数取得
symbol = sys.argv[1]
start_date = sys.argv[2]
end_date = sys.argv[3]
# 日付フォーマット確認
try:
datetime.strptime(start_date, "%Y-%m-%d")
datetime.strptime(end_date, "%Y-%m-%d")
except ValueError:
print("日付は YYYY-MM-DD 形式で指定してください")
sys.exit(1)
# 株価取得
data = yf.download(symbol, start=start_date, end=end_date, auto_adjust=True)
# 結果表示
if data.empty:
print(f"{symbol} の株価データが見つかりませんでした")
else:
print(data[["Close"]])
$
$ python3 GetStockData.py 7203.T 2025-10-1 2025-10-01🆑
[*********************100%***********************] 1 of 1 completed
1 Failed download:
['7203.T']: YFPricesMissingError('possibly delisted; no price data found (1d 2025-10-1 -> 2025-10-01)')
7203.T の株価データが見つかりませんでした
$
$ python3 GetStockData.py 7203.T 2025-10-1 2025-10-02🆑
[*********************100%***********************] 1 of 1 completed
Price Close
Ticker 7203.T
Date
2025-10-01 2821.5🈁
$
#10月3日まで指定した. この日は金曜日.
$ python3 GetStockData.py 7203.T 2025-10-1 2025-10-03🆑
[*********************100%***********************] 1 of 1 completed
Price Close
Ticker 7203.T
Date
2025-10-01 2821.5
2025-10-02 2805.0🈁 木曜日分までしかデータが取れてない.
$
#10月4日まで指定した.この日は土曜日.
$ python3 GetStockData.py 7203.T 2025-10-1 2025-10-04🆑
[*********************100%***********************] 1 of 1 completed
Price Close
Ticker 7203.T
Date
2025-10-01 2821.5
2025-10-02 2805.0
2025-10-03 2839.50🈁 金曜日分まで取れている
$
#10月5日まで指定した.(この日は日曜日)
$ python3 GetStockData.py 7203.T 2025-10-1 2025-10-05🆑
[*********************100%***********************] 1 of 1 completed
Price Close
Ticker 7203.T
Date
2025-10-01 2821.5
2025-10-02 2805.0
2025-10-03 2839.5🈁 金曜日分まで取れている
$
今日は日曜日なので,相場が開いている時にこれを実行したら,どれくらいの遅延で取得できるのか確認できるね.
python3 GetStockData.py 7203.T 2025-10-1 2025-10-02