スクレイピングで競馬のデータを集めよう

競馬の予想サイトは複雑
競馬の予想サイトは複雑なので、俯瞰的にデータを集めよう。

ID馬券の第一歩はスクレイピング

直感だけで勝ち馬を当てる人はいますが、そのような人は極一部だと思います。当たる確率を高めようと思えば、データを参考にした方がいいと思います。私の従兄弟はよく馬券を当てますが、過去のデータを参考にすることが多いです。

ただデータを集めてもデータを読み解く力が必要なので、一朝一夕に当たる確率が増えることはないでしょう。しかしスクレイピングで、競馬のデータを集めることは意味のあることだと思います。データを集めることで、ビジネスの種が増えるからです。

本記事ではスクレイピングで、競馬のデータを集めるポイントを紹介します。大まかな流れを紹介しますが、技術的なことは専門サイトや専門の解説書を読んでください。競馬のデータを集めそれを加工すれば、きっと喜ぶ人はいると思います。

競馬のデータをスクレイピングするステップ

これからは競馬のデータを、スクレイピングするステップを紹介します。

専門サイトのソースをチェック

スクレイピングはタグ単位で抽出するのが基本なので、該当するタグを見つける必要があります。今回は「https://race.netkeiba.com/top/payback_list.html」を参考にしました。そしてスクレイピングの対象は配当にしました。

まずは配当金が記載されているデータの一部を確かめます。それからはサイト上で右クリックして、サイトのソースを表示します。ソース上で該当のデータを検索します。今回は「単勝」「複勝」「枠連」「ワイド」「馬単」「3連複」「3連単」を検索しました。

HTML
HTMLはスマホでも使えるよ。

すると該当するタグがわかりました。配当の種類は<th>単勝</th>、対象の馬の種類は<div><span>16</span></div>、配当金は<td class=”Payout“><span>180円</span></td>のタグで囲まれているのがわかりました。

スクレイピングするときはこれらのタグを探せばいいのですが、抽出方法は技術書または技術サイトを参考にしてください。

データをデータベースに保存する

スクレイピングで取得したデータは、データベースに格納すれば便利です。データベースに格納すれば、自由自在に表示できます。データベースはSQL言語で操作しますが、SQL言語は柔軟度の高いプログラム言語です。

専門サイトから取得した競馬のデータの種類は多いですが、同じ系統のデータは同じタグが使われています。このようなデータを扱うときは、配列処理すれば楽だと思います。配列処理は複数のデータを連番で格納しますが、データベースに格納するときは「変数名「0」」という形で入れます。

配列処理はプログラミングの基本で、多くのデータを効率的に処理するときは配列処理の構文を使うに限ります。どのプログラム言語にも、配列処理の構文はありますよ。

著作権を確認する

最近はインターネット上の情報も著作権の対象になっており、競馬の情報を公開するときは著作者に許可を取ることが大切です。著作者が駄目だと言ったら、インターネットに公開するのはやめましょう。個人に限り利用可能な場合は、一般の人が閲覧できないExcelなどに保存しましょう。

Excelに保存するときはデータをCSV形式に変換すれば便利ですが、CSV形式にする方法は広く紹介されているので参考にしてください。どうしてもweb上のデーターベースに格納し表示したい人は、パスワード制限をしてください。

スポンサーリンク

競馬予想サイトの設計図

競馬のデータを収集すれば、予想サイトも制作できると思います。以下ではサイト設計の流れを考えます。

データを俯瞰的に集める

競馬の予想サイトは複雑
競馬の予想サイトは複雑なので、俯瞰的にデータを集めよう。

競馬予想サイトを制作するには、データを俯瞰的に集める必要があると思います。競馬もライバルの馬がいるので、一頭だけが勝ち続けることは難しいです。このような背景があるので、競馬予想サイトを制作するときは、対抗馬のデータも集めた方が良いでしょう。

対抗馬と一緒に戦ったレース結果も集めたら、予想の大きな材料になるのではないでしょうか?また騎手情報も集めたら、より信憑性のある予想サイトになると思います。

テーブル作成

競馬予想サイトに必要なデータをテーブルにしました。

mysqlが使えるデータベースだったら、phpMyAdminでテーブルは作成できます。各項目はカラムといいますが、型は文字が格納できる型がいいと思います。mysqlが使えるレンタルサーバーは多いですが、検索で探すときは「mysql レンタルサーバー」で検索してください。

カラム レース名 出走馬情報 騎手情報 最近の成績 ライバル馬との過去成績
内容 レース名 出走馬情報 騎手情報 最近の成績情報 ライバル馬と戦ったレース結果
着順 1着 2着 3着
ポイント数 ポイント数を書く ポイント数を書く ポイント数を書く

アルゴリズム

必要なデータをデータベースに格納した後は、競馬予想サイトの肝となるアルゴリズム(手順)を考えます。競馬予想サイトのアルゴリズムはもの凄く奥が深いので、人によってさまざまなアルゴリズムがあると思います。

今回は騎手情報、最近の成績、ライバル馬とのレース結果を参考に予想を導きたいと思います。今回は三連複だけの予想なので、アルゴリズムは単純です。

先ずは最近の成績を見ます。そして上位から順番に5点、4点、3点のポイントを付与します。次は成績上位の馬を見て、直接対決で勝った馬に3点のポイントを付与します。最後は騎手情報を見ますが、最近三着までになった騎手には2点のポイントを付与します。

アルゴリズム
アルゴリズムはプログラミングの基本の基本

最後は仕上げですが出走馬と騎手を結びつけて、合計点を算出します。合計点が多い馬は一位になるようにします。

今回のアルゴリズムを実現するには、どのプログラム言語にもある条件分岐を使えばいいでしょう。条件分岐はプログラムの基礎で、条件分岐を活用すればゲームも作成できます。

スポンサーリンク

世界の競馬予想サイトを作成するときはBright Dataが便利

スクレイピングで競馬のデータを抽出することに慣れたら、世界の予想サイト制作に挑戦するのもいいかもしれません。競馬は日本だけではなく、世界的に人気があります。海外の競馬予想サイトを制作したら、海外の馬券を購入するときの参考になるでしょう。

海外の競馬サイトをスクレイピングするときは現地のIPアドレス

私は昨日台湾の友人に日本の動画を送りましたが、台湾の友人は動画を視聴することができませんでした。動画を視聴することができなかったのは、日本国外からのアクセスを禁止していたからではないでしょうか?

このような例は意外に多く、海外の競馬サイトにも同じような例があるかもしれません。このような背景があるので、海外の競馬サイトをスクレイピングするときは、現地のIPアドレスに乗り換えるのが一番です。

Bright Dataは世界10ヶ国のIPアドレスを保有しているので、海外の競馬サイトをスクレイピングするときは助かると思います。基本的に一つのアカウントにつき一つのIPアドレスですが、10ヶ国のIPアドレスが使えるのは大きな魅力です。

データコレクター機能を使えばプログラム不要

Bright Dataのデータコレクター
データコレクターがあれば、スクレイピングできる

Bright Dataのデータコレクター機能は便利で、プログラミング不要でスクレイピングができます。プログラミング不要でデータの抽出ができるので、少しトレーニングしたらアルバイトでも実行できると思います。

またBright Dataにはデータ収集を丸投げできるサービスがあるので、忙しい人はそちらのサービスを利用したらいいと思います。

https://brightdata.com/products/data-collector?lang=ja

世界の競馬予想サイトを制作したら人気が出ると思いますが、人気が出てきたらアフィリエイト収入も見込めます。運が良ければ、海外のアフィリエイト広告と契約することも可能だと思います。

Bright Dataの公式サイト

日本人の担当が確実に着くのは本ブログ経由の方のみになりますので、ご注意ください。こちらのサイトからお申し込みいただければ、間違いなく日本人担当がつきます

まとめ

スクレイピングと競馬をテーマに解説しましたが、競馬のデータは膨大なのでスクレイピングすることは意味のあることです。過去のデータであっても、競馬好きの人であれば喜んで見ると思います。

スクレイピングで収集したデータの活用方法は十人十色ですが、競馬のデータを活用すれば収益化しやすいと思います。

効率的に競馬のデータを収集したい人は、迷わずBright Dataのデータコレクター機能を使ってください。データコレクター機能は視覚的に操作ができるので、少しトレーニングしたら誰でも使いこなせるようになりますよ。

より柔軟にスクレイピングをしたい人は、Bright DataのAPI関数を使ってください。Bright Dataは各プログラム言語のサンプルを提供しているので、構築するときは楽ですよ。

Bright Dataの公式サイト

日本人の担当が確実に着くのは本ブログ経由の方のみになりますので、ご注意ください。こちらのサイトからお申し込みいただければ、間違いなく日本人担当がつきます

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)