「株価をいつでも確認したいけど、毎回サイトを開くのが面倒…」
「自分が見たい銘柄だけを一覧で表示できたら楽なのに…」
そうお悩みの方にこそおすすめなのが、Pythonを使って作る「リアルタイム株価トラッカー」です。
本記事では、PythonとWebスクレイピングの力で、好きな株価情報を自動取得し表示する方法を、小学生でもわかるやさしい言葉と実際のコード付きで解説します。
「Pythonで実用的なツールを作ってみたい」
そう思っているあなたに、具体的かつすぐ使える学びをお届けします。
株価トラッカーとは何か【リアルタイム株価トラッカー とは】
株価トラッカーの基本機能を解説
結論:株価トラッカーは、銘柄ごとの株価をリアルタイムで一覧表示するツールです。
主な機能は以下の通りです。
• 特定の企業名や証券コードを指定して株価を取得
• 現在値・前日比・出来高などの表示
• データを数分おきに更新
• 通知機能で一定の価格を超えたらアラートを出す
このような機能により、株式投資の判断や学習に役立つ情報を一目で把握できます。
どんな場面で使えるのか
結論:投資判断や日々の経済チェックに最適です。
以下のような方に特におすすめです。
• 株を始めたばかりの初心者
• 特定の銘柄を長期で追っている中級者
• 毎日の株価変動を記録したい人
• スクレイピングやデータ処理を学びたい人
「株価を自分の手で取得してみたい」
その気持ちがあれば、誰でもこのツールを作れます。
Webスクレイピングの基礎【Python Webスクレイピング 入門】
Webスクレイピングとは?仕組みをやさしく解説
結論:Webページから必要な情報だけを自動で抜き出す技術です。
たとえば、証券会社の株価ページには多くの情報がありますが、
人間が見る画面とは違って、HTMLという仕組みで構成されています。
PythonでHTMLを読み取り、特定の要素を抜き出せば、
• 株価だけを取り出す
• 銘柄一覧から特定のコードを拾う
• ページの一部だけを取得する
といったことができます。これがWebスクレイピングの基本です。
必要な準備と注意点を確認しよう
結論:3つのPythonライブラリを使えば簡単に始められます。
まずは以下をインストールしましょう。
pip install requests beautifulsoup4 lxml
• requests:Webページの中身を取得する
• BeautifulSoup:HTMLを読みやすく整える
• lxml:高速な解析用エンジン
また、スクレイピングはルールを守ることが大切です。
• 利用規約で禁止されていないか確認する
• アクセス頻度を制限する(例:5秒ごと)
• 個人情報や著作権のあるデータは扱わない
株価を取得する方法【Python 株価 スクレイピング】
対象サイトと取得対象の選び方
結論:個人利用目的であればYahoo!ファイナンスなどが使いやすいです。
たとえば以下のようなURL構造で、銘柄別のページがあります。
• トヨタ自動車の証券コード:7203.T
• 他の銘柄もこの形式でURLを変えれば取得できます
取得する要素の例:
• 現在価格(HTMLのclass名などで特定)
• 前日比
• 銘柄名
実際のコード例と取得結果の表示
結論:20〜30行のコードで株価取得が可能です。
import requests
from bs4 import BeautifulSoup
url = "https://finance.yahoo.co.jp/quote/7203.T"
res = requests.get(url)
soup = BeautifulSoup(res.text, "lxml")
price = soup.select_one(".stoksPrice").text
name = soup.select_one("h1").text
print(f"{name} の現在の株価は {price} 円です。")
このように、必要なHTMLの要素をclass名やタグ名で指定することで、
正確に情報を抜き出すことができます。
データの整形と表示【Python 株価 整形 表示】
ターミナルで見やすく表示する方法
結論:テーブル形式で表示すれば、複数銘柄の比較も簡単です。
複数の銘柄を扱うには、辞書やリストを使ってループ処理をします。
stocks = {"トヨタ": "7203.T", "任天堂": "7974.T", "ソニー": "6758.T"}
for name, code in stocks.items():
url = f"https://finance.yahoo.co.jp/quote/{code}"
res = requests.get(url)
soup = BeautifulSoup(res.text, "lxml")
price = soup.select_one(".stoksPrice").text
print(f"{name:<6}:{price} 円")
こうすれば、1行ごとに整った表のように表示できます。
グラフで可視化する方法にも挑戦
結論:matplotlibで簡単な折れ線グラフも描けます。
import matplotlib.pyplot as plt
times = ["9:00", "10:00", "11:00"]
prices = [1523, 1530, 1542]
plt.plot(times, prices)
plt.title("トヨタ自動車の株価推移")
plt.xlabel("時刻")
plt.ylabel("株価(円)")
plt.grid(True)
plt.show()
リアルタイムに近いデータを取得してグラフ化すれば、視覚的に変化を把握できるようになります。
自動更新と通知機能の追加【リアルタイム株価 自動更新】
定期的に更新する仕組みを作る
結論:time.sleep()で5分ごとの更新などが可能です。
import time
while True:
get_stock_data() # 自作の取得関数
time.sleep(300) # 5分ごと
また、長期間の運用を行う場合は、cronやスケジューラの活用もおすすめです。
LINE通知やアラート機能の実装方法
結論:LINE Notifyを使えば、指定の価格でスマホに通知できます。
1. LINE Notify でトークンを発行
2. 以下のコードで送信
import requests
message = "トヨタ株が1500円を下回りました"
token = "自分のアクセストークン"
url = "https://notify-api.line.me/api/notify"
headers = {"Authorization": f"Bearer {token}"}
data = {"message": message}
requests.post(url, headers=headers, data=data)
一定の条件で通知されることで、リアルタイム性が高まります。
実務や学習への応用【Python 株価 スクレイピング 応用】
ログ保存や過去データの蓄積方法
結論:CSVファイルに保存することで履歴管理ができます。
import csv
from datetime import datetime
with open("stock_log.csv", "a", newline="") as f:
writer = csv.writer(f)
now = datetime.now().strftime("%Y-%m-%d %H:%M")
writer.writerow([now, "トヨタ", 1530])
Excelに読み込んで分析も可能です。
⸻
証券分析や投資学習にも活かせる
結論:Python×株価の組み合わせは、データ分析の入口に最適です。
• 株価の移動平均を計算
• 高値・安値の自動取得
• トレンドの可視化
など、多くの分析をPythonで行うことが可能です。
👉関連記事:Pythonで「為替レート自動取得BOT」を作ってみた【API活用】
まとめ:実用的な株価取得ツール【Python 株価トラッカー 効果】
本記事の要点をまとめます。
• PythonとWebスクレイピングで、株価を自動取得するツールが作れます
• 見たい銘柄だけを表示・記録・通知することで効率化できます
• 投資学習やデータ処理の練習にも最適です
Pythonの力で、リアルタイムの情報を自分の手で扱う楽しさと便利さを、ぜひ体験してください。