見出し画像

【競馬自動購入】pythonでのipatgo実装

こんにちは!

自分は、昨年競馬自動購入プログラムを作成しました!

が、自分の復習も兼ねて、これから作成しようと思っている方の助けになればとおもって、その作成方法について、これから簡単に書いていこうと思います。

この記事では、中央競馬の馬券購入部分をサポートしてくれるipatgoをpythonで動かすといった内容を書こうとおもいます。

ipatgoのサンプルソースページには、VBの例しかなく、pythonでの動作方法を調べるのに多少時間をかけてしまいましたので、ここで説明していきます。ちなみに、OSはwindowsです。

動作条件

まずは、ipatgoを動作させるための条件を満たしているか確認しましょう。
ipatgoについて」ページに詳細が載っています。

・JRA-VANデータラボ会員でJV-Linkがインストールされている事
・JRA-IPAT会員である事
・対応OS Windows7 Windows8 Windows8.1 Windows10 ※すべて32bit/64bit対応
・Linux、Mac OS Xにも対応。詳細はお問い合わせください。

JRA-VANデータラボ会員は月2090円かかり、1ライセンスでPC2台まで利用可能です。1か月無料で使えたと思うので、無料体験だけしてみるのもいいかと思います。
様々な競馬データを簡単に取得できるようになるので便利です^^

ipatgoのダウンロード

動作条件を満たしていたら、まずipatgoをダウンロードしましょう。ダウンロードページからダウンロードできます。下にある、BALLOONというものは利用してないです。

セットアップ

セットアップページを見て、セットアップをしましょう。

ここまでで、ipatgoの準備は完了しました。

これから、pythonにより実行していきます。

pythonファイル作成

pythonで、ipatgo.exeを実行しましょう。

ipatgoのfileモードというモードで実行します。fileモードとは、投票ファイルから複数件一括投票できるモードです。
下の説明はipatgoのモード(機能)一覧ページに載っています。

画像1

つまり、ipatgo.exeの存在するディレクトリ配下で、コマンドプロンプトにて下のようなコマンドを打つとipatgoが実行できます。

ipatgo.exe file abcdefgh 12345678 1111 9999 c:\UMAGEN\IPATGO\votefile.csv

※カレントディレクトリにipatgoがない場合、ipatgo.exeをフルパスで書くと大丈夫です。

上記コマンドの最後の項目にある投票ファイルというものは、どういった馬券を買うかというものを記載するためのファイルです。下の説明の通りで、csv形式となります。投票データフォーマットページに詳細はあります。

画像2

実際の投票ファイル内容は下記のようになります。1行で1つの買い目となっています。注意点として、枠連、馬連、ワイド、三連複の組番指定で投票方式がNORMALの時は若番を左の組に配置していないと投票失敗します。

20210320,CHUKYO,12,SANRENPUKU,NORMAL,,05-13-16,100
20210320,CHUKYO,12,SANRENPUKU,NORMAL,,03-13-16,100
20210320,CHUKYO,12,SANRENPUKU,NORMAL,,05-12-16,100
20210320,CHUKYO,12,SANRENPUKU,NORMAL,,03-12-16,100
20210320,CHUKYO,12,WIDE,NORMAL,,03-05,400

遅くなりましたが、実際にpythonでipatgoを実行するためにコードを書きましょう。下は、サンプルコードです。

import subprocess

vf = 'kaime_ipatgo.csv'  # 投票ファイルのパス

InetID = 'INET-ID'
UserNo = '加入者番号'
PassNo = '暗証番号'   
ParsNo = 'P-ARS番号'

proc = subprocess.run(
   [r'c:\umagen\ipatgo\ipatgo.exe', 'file', InetID, UserNo, PassNo, ParsNo,
    vf], stdout=subprocess.PIPE, stderr=subprocess.PIPE)

if proc.returncode != 0:
   print('投票処理が失敗しました')
   
else:
   print('投票処理を実行しました')

pythonの標準ライブラリであるsubprocessモジュールを利用します。
run メソッドに起動するコマンド (と引数からなるリスト) を渡します。
オプションは、主に以下のものがあります。

画像3

このコードではオプション指定してますが、なくても実行できると思います。
戻り値の returncode 属性で終了ステータスが分かり、0だと正常実行されたことを示しています。

最後に

以上で、ipatgoをpythonで動作させることができると思います!

実際にブラウザをポチポチせずに購入できるのは、はやくていいですね~

月額料金かかるのが少し難点ですが、競馬データを使えることを加味するとまあいいんじゃないでしょうか。

需要がありそうなら、自動購入の他の部分もかいていこうかなー。

(追記)

自動購入のコードはこちらにまとめましたので、気になった方はどうぞー。


この記事が気に入ったらサポートをしてみませんか?