「株価をいつでも確認したいけど、毎回サイトを開くのが面倒…」
「自分が見たい銘柄だけを一覧で表示できたら楽なのに…」
そうお悩みの方にこそおすすめなのが、Pythonを使って作る「リアルタイム株価トラッカー」です。
本記事では、PythonとWebスクレイピングの力で、好きな株価情報を自動取得し表示する方法を、小学生でもわかるやさしい言葉と実際のコード付きで解説します。
「Pythonで実用的なツールを作ってみたい」
そう思っているあなたに、具体的かつすぐ使える学びをお届けします。
株価トラッカーとは何か【リアルタイム株価トラッカー とは】
株価トラッカーの基本機能を解説
結論:株価トラッカーは、銘柄ごとの株価をリアルタイムで一覧表示するツールです。
主な機能は以下の通りです。
• 特定の企業名や証券コードを指定して株価を取得
• 現在値・前日比・出来高などの表示
• データを数分おきに更新
• 通知機能で一定の価格を超えたらアラートを出す
このような機能により、株式投資の判断や学習に役立つ情報を一目で把握できます。
どんな場面で使えるのか
結論:投資判断や日々の経済チェックに最適です。
以下のような方に特におすすめです。
• 株を始めたばかりの初心者
• 特定の銘柄を長期で追っている中級者
• 毎日の株価変動を記録したい人
• スクレイピングやデータ処理を学びたい人
「株価を自分の手で取得してみたい」
その気持ちがあれば、誰でもこのツールを作れます。
Webスクレイピングの基礎【Python Webスクレイピング 入門】
Webスクレイピングとは?仕組みをやさしく解説
結論:Webページから必要な情報だけを自動で抜き出す技術です。
たとえば、証券会社の株価ページには多くの情報がありますが、
人間が見る画面とは違って、HTMLという仕組みで構成されています。
PythonでHTMLを読み取り、特定の要素を抜き出せば、
• 株価だけを取り出す
• 銘柄一覧から特定のコードを拾う
• ページの一部だけを取得する
といったことができます。これがWebスクレイピングの基本です。
必要な準備と注意点を確認しよう
結論:3つのPythonライブラリを使えば簡単に始められます。
まずは以下をインストールしましょう。
1 | pip install requests beautifulsoup4 lxml |
• requests:Webページの中身を取得する
• BeautifulSoup:HTMLを読みやすく整える
• lxml:高速な解析用エンジン
また、スクレイピングはルールを守ることが大切です。
• 利用規約で禁止されていないか確認する
• アクセス頻度を制限する(例:5秒ごと)
• 個人情報や著作権のあるデータは扱わない
株価を取得する方法【Python 株価 スクレイピング】
対象サイトと取得対象の選び方
結論:個人利用目的であればYahoo!ファイナンスなどが使いやすいです。
たとえば以下のようなURL構造で、銘柄別のページがあります。
1 | <a rel="noopener" href="https://finance.yahoo.co.jp/quote/7203.T" title="トヨタ自動車(株)【7203】:株価・株式情報 - Yahoo!ファイナンス" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.yimg.jp/images/finance/common/image/ogp.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90"></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">トヨタ自動車(株)【7203】:株価・株式情報 - Yahoo!ファイナンス</div><div class="blogcard-snippet external-blogcard-snippet">トヨタ自動車(株)【7203】の株価、チャート、最新の関連ニュース、掲示板、みんなの評価などをご覧いただけます。前日終値、高値、安値はもちろんのこと年初来高値/安値もご覧いただけます。Yahoo!ファイナンスでは株価速報、チャート、ランキン...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://finance.yahoo.co.jp/quote/7203.T" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16"></div><div class="blogcard-domain external-blogcard-domain">finance.yahoo.co.jp</div></div></div></div></a> |
• トヨタ自動車の証券コード:7203.T
• 他の銘柄もこの形式でURLを変えれば取得できます
取得する要素の例:
• 現在価格(HTMLのclass名などで特定)
• 前日比
• 銘柄名
実際のコード例と取得結果の表示
結論:20〜30行のコードで株価取得が可能です。
1 2 3 4 5 6 7 8 | import requests from bs4 import BeautifulSoup 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 株価 整形 表示】
ターミナルで見やすく表示する方法
結論:テーブル形式で表示すれば、複数銘柄の比較も簡単です。
複数の銘柄を扱うには、辞書やリストを使ってループ処理をします。
1 2 3 4 5 6 7 | stocks = { "トヨタ" : "7203.T" , "任天堂" : "7974.T" , "ソニー" : "6758.T" } for name, code in stocks.items(): res = requests.get(url) soup = BeautifulSoup(res.text, "lxml" ) price = soup.select_one( ".stoksPrice" ).text print (f "{name:<6}:{price} 円" ) |
こうすれば、1行ごとに整った表のように表示できます。
グラフで可視化する方法にも挑戦
結論:matplotlibで簡単な折れ線グラフも描けます。
1 2 3 4 5 6 7 8 9 | 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分ごとの更新などが可能です。
1 2 3 4 | import time while True : get_stock_data() # 自作の取得関数 time.sleep( 300 ) # 5分ごと |
また、長期間の運用を行う場合は、cronやスケジューラの活用もおすすめです。
LINE通知やアラート機能の実装方法
結論:LINE Notifyを使えば、指定の価格でスマホに通知できます。
1. LINE Notify でトークンを発行
2. 以下のコードで送信
1 2 3 4 5 6 7 | import requests message = "トヨタ株が1500円を下回りました" token = "自分のアクセストークン" headers = { "Authorization" : f "Bearer {token}" } data = { "message" : message} requests.post(url, headers = headers, data = data) |
一定の条件で通知されることで、リアルタイム性が高まります。
実務や学習への応用【Python 株価 スクレイピング 応用】
ログ保存や過去データの蓄積方法
結論:CSVファイルに保存することで履歴管理ができます。
1 2 3 4 5 6 | 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の力で、リアルタイムの情報を自分の手で扱う楽しさと便利さを、ぜひ体験してください。