Pythonで「リアルタイム株価トラッカー」を作ってみた【Webスクレイピング】

プログラミング

「株価をいつでも確認したいけど、毎回サイトを開くのが面倒…」

「自分が見たい銘柄だけを一覧で表示できたら楽なのに…」

そうお悩みの方にこそおすすめなのが、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():
    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で簡単な折れ線グラフも描けます。

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の力で、リアルタイムの情報を自分の手で扱う楽しさと便利さを、ぜひ体験してください。

タイトルとURLをコピーしました