【競馬予想】競馬データをスクレイピングしてみた

先日、Twitterで競馬についてのツイートをみました。ある大学生さん、自作のAIに有馬記念を予想させ、118万当たったというツイートがネットで話題になりました。本当にAIに予想できるの、競馬というもの?

 ツイート

 

グーグルしてみると、競馬予想の方法が様々ですが、AIは今年から登場しました。AIは統計解析によって競馬の結果を予測しているそうです。競馬にも技術介入の時代ですね。

ですが、競馬の統計解析を行うには、解析するためのデータがなければ何も始まりません。ということで、今回は競馬のデータをスクレイピングしてみることにします。

今回、JRA公式サイトのデータソースをスクレイピングします。JRA公式サイトには、有馬記念はもちろん、過去の様々なレースの成績データを見ることができます。

 有馬記念

データを取得にはOctoparseを使います。Octoparseは使いやすいWebスクレイピングツールで、プログラミングを必要としなく誰でも簡単にWebデータを取得できます。これから、2019年の有馬記念のデータを収集します。

さて、始めましょう!

 

ステップ1. 対象のWebページを設定する

Octoparseを起動して、ホーム画面の「カスタマイズモード」に表示されている「+ タスク」ボタンをクリックします。「Webサイト」に対象のURLを入力し、「URLを保存する」ボタンをクリックします。

下記のURLを使います。

http://jra.jp/datafile/seiseki/g1/arima/result/arima2019.html

対象ページを設定

 

 

ステップ2. 取得する項目を設定する

今回は着順、馬名、騎手、調教師などテーブルにあるデータを全部取得します。

まず、着順の「1」をクリックすると、緑色に変わり、選択されたことを示します。残りの着順は赤色に変わり、類似した要素として識別されたことを示します。各行目のデータを行別で取得するには、「操作ヒント」でエリア拡大のボタンをクリックし、一行目のデータが全部選択されるようにします。テーブルの構造だから、ソースコードには各行のタグは「TR」です。

テーブルデータ取得1

 

各行にあるデータを細かく取得するため、「操作ヒント」で「すべてのサブ要素を選択する」をクリックします。そうすると、16行にあるデータはすべて選択され、「すべて選択」、「選択したデータを抽出する」を順番にクリックすると、Octoparseはデータを抽出します。データ取得5

 

フィールド名を編集し、余計なデータを削除することもできます。

 データ取得1

「ループアイテム」の各項目をクリックして、データが正しく抽出されるかどうかを確認することができます。

テーブルデータ取得6

 

検証したところ、「枠」のデータが取得されません。その部分は画像で表示されるのです。しかし、その数字は画像のURLに隠されています。そのため、まず画像のURLを取得し、それから数字を取得します。

http://jra.jp/JRADB/img/waku/3.png

「枠」の画像をクリックし、「操作ヒント」で「選択した画像のURLを抽出する」をクリックすると、データを取得できます。

テーブルデータ取得8

画像のURLから数字を取得には、2つの方法があります。1つはエクセルの「切り替える」機能です。もう1つはOctoparseのデータ再フォーマット機能です。どっちでも簡単ですので、ここでは省略します。

 

 

ステップ3. データ抽出を実行する

これで、スクレイピングのワークフローが完成しました。簡単でしょう!「抽出の開始」をクリックし、「ローカル抽出」を選択し、実行してみると、とてもきれいにまとまてくれました!

抽出したデータ

 

この方法でほか年度のデータも取得できます。競馬のデータはほぼテーブルで表示されるから、テーブルのスクレイピングを把握すれば、簡単に取得できますね。最近、Octoparseは初心者への「Hello World」を用意し、テストサイトを使って、スクレイピングの方法を紹介しています。テーブルのスクレイピングデモもありますので、必要があれば、参考してみてください。

 分析し予測しようとしますが、手元に適当な統計モデルがないし、やる気も尽きてしまったので、今回はここまでにしましょう(笑)。もし皆さんが予測モデルがあれば、教えてくださいね!

 

 

 

関連記事:

【2019】タピ活におすすめ!東京のタピオカ人気店5選をご紹介

Python vs Octoparse!初心者向きのスクレイピング方法はどっち?

仮想通貨の時価総額をスクレイピングしてみる

データマイニング手法7選