見出し画像

【自動購入】地方競馬に自動投票する予約プログラムを組んでみた

ある日楽天競馬好きの友人からこんなことを言われました。
 「予想は当たっていたのに仕事で投票逃した…。なんか事前に投票予約できるシステム組めないの?」

 現役のプログラマー(ただしゲーム)である私ですが、Web系は触ったことがありませんでした。
 なのでんな『難しいこと言われても…』と思いながら調べたらPythonなら割かし簡単に実装できそうだってことがわかって、組んでみたらいい感じに出来てしまったのでそのソースコード含めてご紹介。
最後にはプログラム環境がなくても動作させることが出来る、自動投票予約アプリの実行ファイルも添付しておきます。
※2023/11/18追記 現在ChromeDriver公式の管理のされかたが変わったようで同梱の実行ファイルは動作環境のChromeのバージョンによっては「There is no such driver by url ….」というエラーが表示されで起動できません。
その場合は実行ファイルではなくGoogleChromeを最新版へ、また「pip install -U webdriver-manager」でwebdriver-managerを最新版へ更新したうえで直接ソースコードを実行していただければ正常に起動いたします。

アプリの内容に関しては
 ・当日開催されている全ての地方競馬(帯広ばんえい含め)に投票できる
 ・枠単、枠連以外の全ての掛け方を選択できる
 ・投票締め切りの何分前に投票するかを指定できる
 ・オッズの指定ができる(例:5.0~10.0だったら投票 など)
 ・楽天競馬で購入を行う
もちろん予約はキャンセルすることもできる。



完成した画面がこちら

スクリーンショット 2022-04-21
メインの購入予約をする画面

メイン画面では当日選択できる競馬場のみ選択できるようになる。
上のスクリーンショットでは撮影時の2022/04/21に開催している地域の競馬場だけ選択できるようになっている。

予約管理画面

メインにて購入予約した内容を確認・削除することができる画面。

設定画面

購入を行うためにログインする際の楽天競馬ユーザー名とパスワードと設定する画面。
あと、購入を行う際ブラウザを表示するか、表示しないでこっそり購入するか選択できる。


開発環境

開発環境はVisualStudio2019
開発言語はPython3.10
以下はインポートしたパッケージ一覧
altgraph==0.17.2
async-generator==1.10
attrs==21.4.0
beautifulsoup4==4.10.0
bs4==0.0.1
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.12
cryptography==36.0.2
future==0.18.2
h11==0.13.0
idna==3.3
numpy==1.22.3
outcome==1.1.0
pandas==1.4.1
pefile==2021.9.3
pycparser==2.21
pyinstaller==4.10
pyinstaller-hooks-contrib==2022.3
pyOpenSSL==22.0.0
PySimpleGUI==4.57.0
PySocks==1.7.1
python-dateutil==2.8.2
pytz==2022.1
pywin32-ctypes==0.2.0
requests==2.27.1
selenium==4.1.3
six==1.16.0
sniffio==1.2.0
sortedcontainers==2.4.0
soupsieve==2.3.1
trio==0.20.0
trio-websocket==0.9.2
urllib3==1.26.9
webdriver-manager==3.5.4
wsproto==1.1.0


ソースコード

正直きれいなものじゃない
調べながら覚えながらやったので実装した後に、効率的なやり方があることを知ったり気づいたりしたのであまりPythonの強みを生かせなかったのは今後の課題。
あくまで参考の参考までに見ていってください。
ソースコードは最後に添付してあるzipファイルの中に実行ファイルと一緒に同梱してあります。
なのでここでは各ファイルの軽い説明だけ。

ここから先は

1,412字 / 1ファイル

¥ 4,980

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