以前X(旧Twitter)で、自作AIに有馬記念を予想させたところ118万2500円が的中したというツイートが話題を集めました。競馬予想AIの精度を左右するのは「どれだけ質の高いデータを大量に集められるか」に尽きます。

しかし実際に試してみると「JRAやnetkeibaのデータはどこから取得すればいい?」「スクレイピングは規約違反では?」「PythonなしでCSVに落とせる方法はあるの?」という疑問にぶつかります。
本記事では、Webスクレイピングツール「Octoparse(オクトパース)」を使ったノーコード手順を軸に、JRA公式サイトとnetkeibaの両方から競馬データをCSVで無料取得する方法を解説します。Python・API・公式データ配布サービスとの比較、JRA・netkeibaの利用規約の正確な理解、AI予想への活用まで、競馬データ収集に必要なすべてを一記事にまとめました。
Octoparseを使えば、以下のような競馬データフィールドをノーコードでCSV/Excel出力できます。
データ項目 JRA公式サイト netkeiba 活用例 着順 ○ ○ レース結果分析 馬名 ○ ○ 馬別成績トラッキング 騎手名 ○ ○ 騎手成績・勝率分析 調教師名 ○ ○ 厩舎傾向分析 タイム・着差 ○ ○ コース・距離別タイム比較 オッズ △(限定的) ○ 回収率・期待値計算 馬体重・増減 ○ ○ 体調管理・体重トレンド 負担重量 ○ ○ ハンデ戦分析 過去成績(馬別) ○(レース単位) ○(馬・騎手別) AI学習データ構築 出馬表 ○ ○ 当日レース前の事前収集 地方競馬データ × ○(一部) 中央+地方統合分析 ※ JRA公式サイト・netkeibaともにOctoparseのカスタマイズタスクで取得可能。エクスポート形式はCSV・Excel・JSON・各種データベースに対応しています。
競合情報も営業リストも、ウェブデータをそのままExcel・CSV・Google Sheetsに出力
コード不要、誰でも今日から。クリック操作だけで必要な項目を自動抽出
Google Maps・食べログ・iタウンページ向けテンプレートで、リード獲得をすぐに開始
クラウドで毎日・毎週自動実行。大量取得でも安定して、競合動向を常に把握
MCP対応でAIエージェントと連携。収集データをAIに渡して分析・活用まで一気通貫
クレジットカード不要で無料スタート。世界600万人以上が選んだ信頼のツール
競馬データをCSVで取得する4つの方法を比較する
競馬データをCSVで入手する主な方法は4つあります。自分のスキルレベルや目的に合わせて選択しましょう。
| 取得方法 | 難易度 | 費用 | 対応サイト | CSV出力 | 定期自動更新 |
|---|---|---|---|---|---|
| Octoparse(ノーコード) | ★☆☆ 簡単 | 無料〜 | JRA・netkeiba・地方競馬ほか | ○ | ○ |
| Pythonスクレイピング | ★★★ 要スキル | 無料 | JRA○ / netkeiba △(要対策) | ○(要コード) | △(要実装) |
| JRA-VAN DataLab | ★☆☆ 簡単 | 月額約1,100円〜 | JRAのみ | ○(専用ソフト) | ○ |
| JRA公式サイト(手動) | ★☆☆ 簡単 | 無料 | JRAのみ | ×(手動コピー) | × |
プログラミングの知識がなく大量データを定期収集したい方には、Octoparseのノーコード手順が最もコスパに優れています。なお、スクレイピング実施時にアクセスブロックされた場合の対策については、スクレイピングのブロック回避方法もあわせてご参照ください。
【ノーコード・無料】OctoparseでJRA公式サイトから競馬データをCSV取得する
JRA公式サイト(jra.go.jp)は静的HTMLページで構成されており、Octoparseのテーブルスクレイピング機能で安定してデータを取得できます。ここでは2025年有馬記念のレース結果データを例に手順を解説します。

ステップ1. スクレイピング対象のURLを設定する
Octoparseを起動し、ホーム画面の「新規作成 > カスタマイズタスク」をクリックします。

URL入力欄に対象ページのアドレスを貼り付けます。今回は有馬記念2025の成績ページを使用します。

ステップ2. 取得する項目を選択する
ページが読み込まれたら、テーブル内の「1」(着順)をクリックします。緑色に変わり、類似要素が赤色で識別されます。「操作ヒント > 選択範囲拡大」をクリックすると一行分が全選択され、続いて「サブ要素を選択する > すべて選択 > データを抽出する」と進みます。


「枠」の数字は画像(PNG)として埋め込まれているため、そのままでは抽出されません。枠の画像をクリックし「操作ヒント > 画像リンクを抽出する」を選ぶと画像URLを取得できます。URLから数字だけを切り出すには、Octoparseのデータ再フォーマット機能を使うと、コード不要で整形できます。
ステップ3. データ抽出を実行する
ワークフローを保存し「実行」をクリックします。少量データ(1レース分)であれば「ローカル抽出」で十分です。定期的に複数レースを収集する場合は、クラウド抽出を使うことでPCを起動していなくても自動収集できます。

ステップ4. CSVでエクスポートする
抽出完了後、「データをエクスポート」からCSV・Excel・JSON形式で保存できます。出力されるデータには着順・馬名・騎手・調教師・タイム・枠番などが含まれ、そのままPandasやRに読み込んでAI競馬予想モデルの学習データとして活用できます。

実用Tip:過去データを複数年まとめて取得する
JRAサイトのURLはレース名と年で規則的に変化します(例:arima2020.html → arima2025.html)。Octoparseの「ループページ」機能でURLリストを登録すると、複数年分の競馬データを一括取得できます。プログラミング知識は不要です。
【ノーコード・無料】Octoparseを使ってnetkeibaから競馬データをCSV取得する
netkeibaは国内最大の競馬情報サービスであり、全国競馬場のレース結果・騎手成績・調教師情報・オッズ・地方競馬データまで網羅しています。JRAサイトでは取得しにくいオッズ推移や騎手別・馬別の詳細成績データもまとめて収集できる点が魅力です。
ステップ1. 対象ページのURLを取得する
netkeibaにアクセスし、収集したいデータのページを開きます。ここでは「データベース > 騎手 > 近走成績」から武豊騎手のページを例にします。表示されたページのURLをコピーしておきます。


ステップ2. OctoparseでURLを読み込み、データを自動検出する
Octoparseを起動し、コピーしたURLを入力欄に貼り付けて「スタート」をクリックします。

「操作提案 > ウェブページのデータを自動検出」をクリックすると、Octoparseが取得すべき項目を自動で特定します。数秒待つとデータフィールドが表示されるので、内容を確認して「ワークフローを生成」をクリックします。


ステップ3. タスクを実行してCSVでエクスポートする
「実行 > ローカル抽出」を選択するとスクレイピングが開始します。完了後は「データをエクスポート」からCSV・Excel形式で保存できます。なお、Octoparseのスケジュール機能を使えば、毎週・毎日など指定した間隔で自動収集させることも可能です。

取得できる主なデータ項目:騎手名、騎乗馬名、レース名・競馬場、距離・馬場状態、着順、タイム、オッズ(単勝)、日付など。
JRA・netkeibaのスクレイピング規約を正しく理解する
競馬データ収集において多くの方が気にするのが「規約上の問題」です。このセクションでは、JRAとnetkeibaそれぞれの現状を整理します。
JRA公式サイトのスクレイピングについて
JRA公式サイト(jra.go.jp)はHTMLベースの静的ページで構成されており、robots.txtを確認したうえで、サーバーに過度な負荷をかけない範囲での個人利用目的のアクセスは一般的に問題が少ないとされています。ただし以下の点には注意が必要です。
- 短時間での大量アクセスは避け、リクエストの間隔を適切に設定する
- 収集したデータを商業目的で再配布・販売することは避ける
- JRAの利用規約の最新版を定期的に確認する
netkeibaの利用規約と2024年以降のBot対策強化
netkeibaは2024年11月頃からBot対策を大幅に強化しました。これ以降、requestsとBeautifulSoup4のみによるPythonスクリプトでは400/403エラーが発生するケースが増加しています。netkeibaの利用規約では、サービスへの過度なアクセスやデータの商業的転用を禁止しており、これは多くの競馬データ関連サービスと同様の方針です。
Octoparseは実際のブラウザ動作をシミュレートするため技術的には動作しますが、利用する際は以下の合法的・倫理的な利用ガイドラインを必ず守ってください。
合法的な競馬データ収集のガイドライン
- 個人・研究目的の利用に限定する:収集データを商業サービスや第三者への再配布に使用しない
- アクセス頻度を適切に抑える:短時間での連続アクセスはサーバーに負荷をかけ、サービスの妨害となりうる
- robots.txtを遵守する:対象サイトのrobots.txtで制限されているパスへのアクセスは避ける
- 最新の利用規約を都度確認する:規約は改定されることがあり、2024年末のnetkeibaのケースがその例
スクレイピングの法的側面について詳しく知りたい方は、スクレイピングは違法?よくある誤解もあわせてご覧ください。
Pythonで競馬データをスクレイピングする方法
コードを自分で書いてデータを管理したい方向けに、Pythonによる基本的な手順を紹介します。ただし後述する技術的制約から、プログラミング経験のない方にはOctoparseのノーコード手法を強く推奨します。
JRA公式サイト(静的HTML)向けコード
JRA公式サイトはHTMLの静的ページなので、requestsとBeautifulSoup4で安定して取得できます。
複数年のデータを収集する場合は、URLのパターン(例:arima2018.html〜arima2025.html)をループで処理すると効率的です。より高度なスクレイピングフレームワークについては、Python Scrapyの入門ガイドもご参照ください。
netkeibaへのPythonアクセス:2024年以降の技術的制約
⚠️ 重要な注意点
2024年11月以降、netkeibaは高度なBot検知システムを導入しており、requestsとBeautifulSoup4のみでは400エラーが発生するケースが大幅に増加しています。Seleniumなどのブラウザ自動化ライブラリを使った場合も、サイトの負荷軽減や利用規約への配慮が求められます。技術的な複雑さを避けたい方には、ブラウザシミュレーションを内蔵したOctoparseが実用的な選択肢です。
Pythonでnetkeibaにアクセスする際の基本的な考え方は、適切なUser-Agentの設定・リクエスト間隔の確保・サイト利用規約の遵守です。自動化ツールを使用する際も、サービス運営に支障をきたさない範囲での利用を徹底してください。
JRA-VAN DataLab・競馬APIなど代替手段との比較
スクレイピング以外にも競馬データを取得する手段はあります。それぞれの特徴を整理します。
JRA-VAN DataLab(公式データ提供サービス)
JRA公式が提供する有料データサービスです。月額1,100円〜でJRAの全レース結果・出馬表・成績データに正式にアクセスでき、専用ソフトウェア(SaraD等)でCSVエクスポートも可能です。JRAデータのみに集中するのであれば最も公式で安定した手段です。ただしnetkeibaのオッズ推移や地方競馬データは対象外です。
競馬API・非公式データサービス
競馬データを提供する非公式APIも存在しますが、無料で安定したものは少なく、提供データの網羅性や継続性に不安があります。株価・為替など金融データのAPIと比べて整備が進んでいない分野です。参考として、株価リアルタイムAPIの活用や仮想通貨データの収集のように整備されたAPIが使えない場合にOctoparseが役立ちます。
地方競馬データの収集
地方競馬のデータを取得したい場合、JRAサイトでは対応していません。netkeibaの地方競馬ページやNAR(地方競馬情報サイト)からOctoparseで収集するアプローチが現実的です。競馬場ごとにURLパターンが異なるため、Octoparseのリストモードを活用してまとめて収集することを推奨します。
競馬データをAI予想に活用する|Octoparse MCPとの連携
収集した競馬データの最終的な活用先として、AI競馬予想モデルの構築があります。OctoparseでエクスポートしたCSVはそのままPandas(Python)やRに読み込め、機械学習モデルの学習データとして利用できます。着順・騎手・タイム・オッズ・馬体重などのカラムが揃っているため、特徴量エンジニアリングの前処理として最適です。
さらに、競馬データ収集をAIエージェントのワークフローに直接組み込みたい場合、Octoparse MCP(Model Context Protocol)が有効です。
MCPを使うと、ChatGPTやClaudeなどのAIアシスタントからOctoparseのデータ収集タスクを直接呼び出し、収集した競馬データをAIに渡してリアルタイム分析・予想レポート生成まで一気通貫で処理できます。「JRAの最新レース結果を取得して、過去3年間の有馬記念データと比較分析して」といった指示をAIに自然言語で与えるだけで、データ収集から分析まで自動化できます。
MCPの詳細な仕組みや設定方法についてはOctoparse MCPとは?をご覧ください。
競合情報も営業リストも、ウェブデータをそのままExcel・CSV・Google Sheetsに出力
コード不要、誰でも今日から。クリック操作だけで必要な項目を自動抽出
Google Maps・食べログ・iタウンページ向けテンプレートで、リード獲得をすぐに開始
クラウドで毎日・毎週自動実行。大量取得でも安定して、競合動向を常に把握
MCP対応でAIエージェントと連携。収集データをAIに渡して分析・活用まで一気通貫
クレジットカード不要で無料スタート。世界600万人以上が選んだ信頼のツール
よくある質問(FAQ)
Q1. 競馬データを無料でCSV形式で入手できますか?
はい、可能です。Octoparseの無料プランを使えば、JRA公式サイトの競馬レース結果データをローカル抽出でCSV保存できます。無料プランでもローカル抽出・10タスク・月5万行の収集が可能で、クレジットカード登録は不要です。
Q2. netkeibaのスクレイピングは利用規約違反ですか?
netkeibaの利用規約は、サービスへの過度な負荷やデータの商業的転用を禁止しています。個人利用・研究目的の範囲内で、適切なアクセス間隔を守って収集する場合は問題が生じにくいとされていますが、必ず最新の利用規約を確認してください。また2024年11月以降、netkeibaはBot対策を強化しており、Pythonの単純なrequestsではエラーが発生することがあります。Octoparseはブラウザシミュレーション方式のため技術的には動作しますが、いずれの手段でも規約の遵守が前提です。
Q3. JRA-VAN DataLabと競馬スクレイピングはどちらが良いですか?
JRA公式データのみが目的なら月額1,100円〜のJRA-VAN DataLabが最も安定・公式です。一方、netkeibaのオッズ情報・騎手別成績・地方競馬データも含めて無料で収集したい場合はOctoparseのスクレイピングが有効です。目的とコストに応じて使い分けることを推奨します。
Q4. Pythonなしで競馬データを自動収集し続けることはできますか?
はい。Octoparseのスケジュール機能(有料プラン)を使えば、毎週レース後に自動収集するタスクを設定できます。クラウド抽出を選択すると、PCの電源を切っていても定刻にデータを収集し続けます。プログラミング知識は一切不要です。
Q5. 収集した競馬データをAI予想モデルに使えますか?
はい、そのまま活用できます。OctoparseがエクスポートするCSVには着順・馬名・騎手・タイム・オッズ・馬体重などのカラムが含まれるため、PandasやRへの読み込み後すぐに特徴量エンジニアリングを開始できます。さらにOctoparse MCPを使えば、AIエージェントから直接データ収集を呼び出し、分析・予想レポート生成まで自動化することも可能です。
まとめ
本記事では、競馬データをCSVで無料取得する方法として、Octoparseを使ったノーコード手順(JRA・netkeiba両対応)、Pythonスクレイピング、JRA-VAN DataLab・APIとの比較、利用規約への正しい理解まで一括して解説しました。
まとめると:
- ノーコードで今すぐ始めたい:Octoparseの無料プランを使ってJRA公式サイトからCSV取得
- netkeiba含むより広範なデータ収集:Octoparseのカスタマイズタスクで騎手成績・オッズ含む詳細データを収集
- 公式データのみ安定収集したい:JRA-VAN DataLabの有料サービスを検討
- AIエージェントとの連携まで見据える:Octoparse MCPで収集〜分析のワークフロー自動化
データ収集を自動化・AI化する最新トレンドについては、AIを活用したWebスクレイピング自動化ガイドもあわせてご覧ください。
Octoparse無料プランはクレジットカード不要で今すぐ試せます。まずはJRA有馬記念の過去データ収集から、ぜひ体験してみてください。
競合情報も営業リストも、ウェブデータをそのままExcel・CSV・Google Sheetsに出力
コード不要、誰でも今日から。クリック操作だけで必要な項目を自動抽出
Google Maps・食べログ・iタウンページ向けテンプレートで、リード獲得をすぐに開始
クラウドで毎日・毎週自動実行。大量取得でも安定して、競合動向を常に把握
MCP対応でAIエージェントと連携。収集データをAIに渡して分析・活用まで一気通貫
クレジットカード不要で無料スタート。世界600万人以上が選んだ信頼のツール



