目次
ID馬券の第一歩はスクレイピング
直感だけで勝ち馬を当てる人はいますが、そのような人は極一部だと思います。当たる確率を高めようと思えば、データを参考にした方がいいと思います。私の従兄弟はよく馬券を当てますが、過去のデータを参考にすることが多いです。
ただデータを集めてもデータを読み解く力が必要なので、一朝一夕に当たる確率が増えることはないでしょう。しかしスクレイピングで、競馬のデータを集めることは意味のあることだと思います。データを集めることで、ビジネスの種が増えるからです。
本記事ではスクレイピングで、競馬のデータを集めるポイントを紹介します。大まかな流れを紹介しますが、技術的なことは専門サイトや専門の解説書を読んでください。競馬のデータを集めそれを加工すれば、きっと喜ぶ人はいると思います。
競馬のデータをスクレイピングするステップ
これからは競馬のデータを、スクレイピングするステップを紹介します。
専門サイトのソースをチェック
スクレイピングはタグ単位で抽出するのが基本なので、該当するタグを見つける必要があります。今回は「https://race.netkeiba.com/top/payback_list.html」を参考にしました。そしてスクレイピングの対象は配当にしました。
まずは配当金が記載されているデータの一部を確かめます。それからはサイト上で右クリックして、サイトのソースを表示します。ソース上で該当のデータを検索します。今回は「単勝」「複勝」「枠連」「ワイド」「馬単」「3連複」「3連単」を検索しました。
すると該当するタグがわかりました。配当の種類は<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にはデータ収集を丸投げできるサービスがあるので、忙しい人はそちらのサービスを利用したらいいと思います。
https://brightdata.com/products/data-collector?lang=ja
世界の競馬予想サイトを制作したら人気が出ると思いますが、人気が出てきたらアフィリエイト収入も見込めます。運が良ければ、海外のアフィリエイト広告と契約することも可能だと思います。
まとめ
スクレイピングと競馬をテーマに解説しましたが、競馬のデータは膨大なのでスクレイピングすることは意味のあることです。過去のデータであっても、競馬好きの人であれば喜んで見ると思います。
スクレイピングで収集したデータの活用方法は十人十色ですが、競馬のデータを活用すれば収益化しやすいと思います。
効率的に競馬のデータを収集したい人は、迷わずBright Dataのデータコレクター機能を使ってください。データコレクター機能は視覚的に操作ができるので、少しトレーニングしたら誰でも使いこなせるようになりますよ。
より柔軟にスクレイピングをしたい人は、Bright DataのAPI関数を使ってください。Bright Dataは各プログラム言語のサンプルを提供しているので、構築するときは楽ですよ。
コメントを残す