今回はご依頼をいただき、とあるレッスンの自動予約ツールを制作しました。
毎日スマホから行っていたネット予約作業を、自動化させることができます。
このツール制作で学んだPythonのプログラミング知識がこちら!
- Webスクレイピングのやり方(BeautifulSoup, Selenium)
- プログラムからGmailを送信する方法
- ブラウザ画面のキャプチャ方法
- タスクスケジューラの使い方(おまけ)
ご要望
世の中、ネットでの予約が大変増えています。とあるレッスンの予約を頻繁にネットで行っているのですが、予約開始時間になかなかネットにつながらないことがよくあります。そんな時に自動で予約を取ってくれる予約ツールがあると便利ですね。指定した日時に所望のレッスンを自動的に予約してくれるようなツールはできないでしょうか?
今はどのような感じで予約をしているか、教えていただけますか?
スマホを使ってレッスンのサイトにログインすると、レッスンのスケジュールが表示されるので、所望のレッスンを選択します。レッスンを選択すると、そのレッスンが行なわれる教室の座席配置図が表示されるので、空いている席の中から好きな席を選択し、予約を確定します。レッスンの予約受付は、該当のレッスンが実際に開催される日の2週間前から可能となります。
仕様検討
依頼者様と打ち合わせを重ね、ツールに関する仕様は以下のようになりました。
- ツールはPCツールでも良い。
- 店舗は全国に複数あるが、今通っている店舗のみを対象とする。
- レッスンは、「レッスン名」「先生名」「開催時間」を指定して予約する。
- レッスンを行う教室は3つあり、それぞれ生徒の座席配置が異なる。
- 予約するときには座席を選択する必要があり、好みの座席を優先的に選べるようにしたい。
- レッスンの予約は同時に予約できる上限数が決められているので、既に予約済のレッスン数が上限に達している場合は、メールで通知してほしい。
- 予約しようとしたレッスンが満席または既に予約済の場合は予約できないので、メールで通知してほしい。
- 予約動作を毎朝決まった時間に自動で実行させたい。
制作したツール
起動画面
ツールを起動すると、このようなメイン画面が開きます。
ユーザは以下の情報を入力します。
- 予約したいレッスンの情報
- 教室ごとに希望するスペース番号(席番号)
- 予約サイトのログイン情報
- 通知先のメールアドレス情報
予約の実行
必要な情報を入力したあと実行ボタンを押すと、ブラウザが立ち上がり、入力した情報に従って予動作を行います。
予約動作が終了すると、予約結果(日付、レッスン名、先生、時間、教室名、確保した席番号)がツール画面の右側に表示されます。
また、予約したレッスンごとに、予約サイトで実際に予約した座席のキャプチャ画面が表示されます。
メール通知
予約しようとしたレッスンの全ての座席が満席の場合は、指定したメールアドレス宛に通知メールが届きます。プログラムからGoogleメールを送受信するには、予めGoogleセキュリティの設定を行っておく必要があります。
自動実行
次は、このツールを任意の日時に自動で実行させる必要があります。
いくつか方法がありますが、ここではWindowsのタスクスケジューラを使う方法にしました。
以上になります!
コメント