楽天競馬のオッズページに騎手の勝率を表示する

Share on:

最近、流行りに乗っかって「ウマ娘」のゲームを始めたわけですが、それに関連して、競馬も少しだけやってみました。
知り合いとゲーム感覚で中央競馬をやっていましたが、それとは別に地方競馬でコツコツとお金を増やせないかと見始めもしました。

地方競馬をする場合、楽天競馬がやりやすいかなと思います。
楽天競馬に掲載されているデータを見ると、7~8割程度は1番人気の馬が上位入着するようです。

また、競馬には色々な掛け方があり、1~3着になる馬を1頭だけ当てるという「復勝」という掛け方があります。
上記の通り、地方競馬は7~8割程度は1番人気が3着までに入るので、7~8割は確実に勝てることになります。
しかし、ここで気を付けなければならないのが、勝った場合の払戻金が「100~150円」程度であるという事です。
仮に、10回掛けたとすると1000円をかけることになります。
一方で、8回は勝てたとして払戻金が「110円」だった場合、「880円」が戻ってきます。
1000円をかけている訳ですから120円負けます。
払戻金が「130円」だった場合、「1040円」が戻ってくるので、「40円」の勝ちになります。

上記の事を考えると、以下の2点が大切だと思います。

  1. 払戻金が「130円」以上になっているレースで勝てそうだと確信のあるレースに掛ける

  2. 1番人気が上位入着できないレースを避ける

基本的には皆が勝つと思っている馬が1番人気なので、必要な情報を加味したうえの結果だとは思うのですが、念のために、いろんな情報を見たくなります。
地方競馬の場合、騎手の勝率も大きな要素となるので楽天競馬のオッズ画面でも確認したいです。

なので、Javascriptを使ってオッズ画面に騎手の勝率を表示させたいと思います。

騎手の勝率/3着内率の表示

以下のJavascriptを楽天競馬の各レースのオッズ画面の「枠・馬番順」タブを表示している状態で実行します。
実行すると各騎手の下に「■勝率|3着内率■」を表示します。

 1// ↓ サンプルデータ
 2var kishuList = [
 3{ 'name': '青柳正義 (金沢)', 'shoritsu': '??%', 'nyuritsu': '??%' },
 4{ 'name': '吉原寛人 (金沢)', 'shoritsu': '??%', 'nyuritsu': '??%' }
 5];
 6// ↑ サンプルデータ
 7
 8document.querySelectorAll('#wakuUmaBanJun > table > tbody > tr > td.jockey > a')
 9    .forEach((elem) => {
10        let kishuName = elem.text.replace(/\s/g, '').replace(/(☆|★|▲|◇)/g, '');
11        kishuList.forEach((kishu) => {
12            if (kishu.name.startsWith(kishuName)) {
13                let text = document.createElement('span');
14                text.appendChild(document.createTextNode('■' + kishu.shoritsu + '|' + kishu.nyuritsu + '■'));
15                if ((kishu.nyuritsu.replace('%', '') * 1) > 40) {
16                    text.style = 'color : red';
17                }
18                elem.parentElement.append(text);
19            }
20        });
21    });

ブックマークレットとして「javascript:上記のスクリプト」を登録して実行できます。 各騎手の勝率は楽天競馬の https://keiba.rakuten.co.jp/analyze/leading/RACEID/202106203230060511 から確認できます。(各競馬場毎に絞り込みができます) 表示されている表をExcelにコピーして、以下のような数式を使用して、「サンプルデータ」部分を生成してください。

1=CONCAT("{ 'name': '",SUBSTITUTE (B2," ",""),"', 'shoritsu': '",TEXT(H2,"0%"),"', 'nyuritsu': '",TEXT(J2,"0%"),"' },")

馬の入着レースをハイライト表示

上と同じようなスクリプトで、馬の直近のレースの入着レースを赤色で表示します。 https://keiba.rakuten.co.jp/horse_detail/detail/HORSEID/620210124 のようなページで以下のスクリプトを同様に実行することで可能です。

1document.querySelectorAll('#mainContainer > div.horseDataField > div:nth-child(4) > table > tbody > tr > td:nth-child(9)')
2    .forEach((elem)=>{
3        if (elem.innerText.match(/([1-3]\/)/)) {
4            elem.style = 'color:red;font-weight:bold';
5        }
6    })