見出し画像

ExcelとSeleniumで競馬の自動投票は難しくない(第4回)

前回はipatのWebサイトにログインするところまで説明しましたが、そもそも自動投票するためには、投票の元となる情報が必要です。
例えば、馬の名前や馬番・枠番、競走場やレース番号などです。
また、発走直前のオッズを見て、投票可否を判定する場合は発走時間も必要となります。
今回はこれらをどのようにしてWeb上から取得するのかという点について説明します。


どのようにして情報を取得するのか?

実は、第3回の内容でipatのWebサイトにログインできるようになった方は、既にWeb上から様々な情報を取得できるようになっています。
これはExcelとSeleniumを利用することによって、スクレイピングという行為ができるようになったためですが、スクレイピングによってWebサイトから様々な情報を取得します。

スクレイピングとは?

スクレイピングとは、Webサイトやデータベースなどのデータから特定の情報を抽出し、収集する技術や行為のことを指します。

もう少し具体的に説明すると、前回はipatのWebサイトから加入者番号や暗証番号を入力する箇所を取得し、取得した箇所に対して加入者番号や暗証番号を送信した結果、加入者番号欄や暗証番号欄に文字列を入力することができました。
デベロッパーツールを起動することによって、Webサイト内の入力箇所(要素)を確認できましたが、Webサイトに表示されているテキストもhtmlやcssにて記述されており、スクレイピングによってテキスト自体をPCに取り込むことができます。
そのため、Webサイトに馬名、馬番、オッズなどが表示されていれば、これらを取得して、ipatに投票するデータを作ることが可能となります。

スクレイピングにおける注意点

スクレイピングはWebサイトを管理しているサーバに負荷を掛ける行為になります。
そのため、まずはスクレイピングしたいWebサイトの利用規約を熟読して、そもそもスクレイピングが認められているのかを確認し、スクレイピングが認められる場合でもサーバに極端な負荷を掛けないようにする必要があります。
具体的には、情報を取得する際に一定の間隔を保ち、
・連続して情報を取得しない
・大量の情報を取得しない
といったことが重要となります。
スクレピングのマナーや考え方については、Web検索すると色々と出てきますので、詳しくはそちらを参考にしてください。

私としては、手動のWeb操作や文字入力を自動化した程度では、Webサーバへの負荷は自動も手動も同じなので、Webサイトからオッズ情報などを取得する場合に、十分なインターバルを取れば問題ないと考えています。

情報の取得先

情報の取得先として、以下の3つのWebサイトが考えられます。
 ・JRA
 ・ipat
 ・netkeiba
JRAやipatから情報を取得したほうが公式な情報として安心なのかもしれませんが、必ずしも得策でない場合もありますので、取得したい情報別に以下で説明していきます。

出馬表

私はJRA-VANデータラボ会員ですので、競馬ソフト「TARGET frontier JV」から出馬表を取得することが可能です。
そこで、JRA-VANデータラボ会員でない方の場合は、
 ネット競馬(https://www.netkeiba.com/
から出馬表を取得することをお勧めします。

まず、JRAのサイトをお勧めしない理由ですが、
JRAのWebサイトにおける2024年菊花賞の出馬表のurlは以下のとおりであり、
https://www.jra.go.jp/JRADB/accessD.html?CNAME=pw01dde0108202405061120241020/52

urlの後半に数字が羅列されています。
これがレースを特定するための固有のIDに当たりますが、特に下2桁の数字(レースによってはアルファベットが割り振られている場合もあります)の意味が分かりません。チェックデジットのようなものかもしれませんが、これを解読するのが面倒です。
出馬表をWebサイトから取得するには、Webサイトにアクセスする都合、レース毎にIDを生成する必要がありますが、netkeibaにおける2024年菊花賞のurlは以下のとおりで、
https://race.netkeiba.com/race/shutuba.html?race_id=202408050611

レースIDは
 ・西暦(4桁)
 ・レース場(2桁、”08”は京都の場名コード)
 ・開催回(2桁)
 ・開催日(2桁)
 ・レース番号(2桁)
の計12桁で構成されており、JRAと比べてもその分かりやすさは一目瞭然です。

次にipatのWebサイトをお勧めしない理由ですが、これはipatが投票を目的としたサイトであり、基本的に21時から翌日7時まではサイトへのログインが制限されているため、情報を取得できません。
21時以降の夜間に競馬予想をすることも想定されますので、消去法ではありますが、出馬表の取得にはnetkeibaを利用することをお勧めします。

オッズ表

オッズの取得に関しては、ipat以外考えられません。
前述したとおり、JRAのサイトでは私自身がレースIDを解読できていませんし、netkeibaのオッズ更新はJRAの発表からタイムラグがありますので、オッズの即時性という面でもipatが優位です。

その他の情報

出馬表とオッズ以外にも競馬予想には最新の馬体重や馬場状態などが必要だと思いますが、各自の競馬予想スタイルに応じて、ipatまたはnetkebaから取得すれば良いと思います。

まとめ

・競馬に自動投票に必要な情報はWebスクレイピングで取得する
・WebスクレイピングはExcelとSeleniumを利用して行う
・出馬表はnetkeibaからの取得がお勧め
・オッズはipatから取得すること
・その他競馬予想に必要な情報は競馬予想スタイルに応じて、
 ipatまたはnetkeibaから取得すること

いいなと思ったら応援しよう!