Skip to content

使い方

セットアップ

1. リポジトリをクローン

bash
git clone git@github.com:otani-devops/HorseRacingDataChecker.git
cd HorseRacingDataChecker

2. Python仮想環境を作成

bash
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

3. 環境変数を設定

bash
cp .env.example .env

.env を編集し、Slack Webhook URLを設定(Slack通知を使う場合):

bash
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/T.../B.../xxx

基本的な使い方

当日の全レースを監視

bash
.venv/bin/python3 main.py

起動すると以下の流れで動作します:

  1. 当日のJRAレーススケジュールを自動取得
  2. 各レースの出馬表(馬名・騎手名)を取得
  3. 60秒間隔でオッズをポーリング
  4. 変動をターミナルにリアルタイム表示
  5. 閾値超過時にSlack通知

特定レースのみ監視

bash
# レースIDを指定(スペース区切りで複数可)
.venv/bin/python3 main.py --race-id 202609010711 202606020511

ポーリング間隔を変更

bash
# 30秒間隔で監視
.venv/bin/python3 main.py --interval 30

Slack通知なしで実行

bash
.venv/bin/python3 main.py --no-slack

指定日のレースを監視

bash
.venv/bin/python3 main.py --date 20260315

Slack通知のテスト

bash
.venv/bin/python3 main.py --test-slack

表示の見方

ターミナル出力

  全レース 急変動ランキング TOP20
┏━━━━━━━━━┳━━━━━━┳━━━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━━━┳━━━━━━━━┓
┃ レース  ┃ 馬番 ┃ 馬名   ┃ 前回 ┃ 今回 ┃ 変動%  ┃ 方向   ┃
┡━━━━━━━━━╇━━━━━━╇━━━━━━━━╇━━━━━━╇━━━━━━╇━━━━━━━━╇━━━━━━━━┩
│ 阪神1R  │   05 │ ○○○ │ 44.2 │ 33.7 │ -23.8% │ ↑ 急騰 │
│ 阪神1R  │   11 │ △△△ │180.3 │258.4 │ +43.3% │ ↓ 急落 │
└─────────┴──────┴────────┴──────┴──────┴────────┴────────┘
表示意味
↑ 急騰オッズ低下 = 買いが集中している
↓ 急落オッズ上昇 = 買いが引いている
-大きな変動なしグレー
太字Slack通知閾値を超えた変動太字

閾値の設定

閾値デフォルト用途
DISPLAY_THRESHOLD_PCT5%この%以上の変動をターミナルに表示
ALERT_THRESHOLD_PCT20%この%以上の変動でSlack通知

停止方法

Ctrl+C でグレースフルに停止します。SQLiteの履歴データは保持されます。

個別モジュールのテスト

各スクレイパーモジュールは単体で実行可能です:

bash
# レーススケジュール取得テスト
.venv/bin/python3 -m scraper.race_calendar

# オッズ取得テスト (race_idを指定)
.venv/bin/python3 -m scraper.odds_fetcher 202609010711

# 出馬表取得テスト (race_idを指定)
.venv/bin/python3 -m scraper.horse_info 202609010711

トラブルシューティング

症状原因対応
レースが0件と表示非開催日土日のJRA開催日に実行する
オッズ取得エラーレース締切済み or race_idが不正--race-id で正しいIDを指定
Slack通知が届かないWebhook URLが未設定.envSLACK_WEBHOOK_URL を設定
IP制限過度なアクセスREQUEST_DELAY を大きくする (2.0秒等)

HorseRacingDataChecker Design Document