見出し画像

[Python]cityheaven 自動予約システムを作ってみた①

皆さんこんにちはITライターのカオマンガイです!
いかがお過ごしでしょうか?何事もまずは自動化、ということで今回は
Seleniumによる自動化の基本構造について学ぶために、CityheavenのWeb予約をPythonで自動化してみましょう!
下記の目次にあります通り、今回の記事では全体の処理概要までで、実際のコードや環境構築方法については次回以降の記事で解説させていただきます!

目次

1. はじめに:cityheavenとは
2. Seleniumとは
3. 処理全体概要
4. 次回予告

1. はじめに:cityheavenとは

CityHeaven(シティヘブン)は、全国各地のデリヘル、ソープランド、ヘルスなどの風俗店情報を掲載している日本最大級の風俗情報ポータルサイトです。利用者は、好みのお店や女性を見つけることができるだけでなく、口コミや評価も参照することができます。ただ、人気の女の子はWeb予約がいっぱいになってしまい、なかなかお会いできないのが現状です。。こういうときはPythonの力を借りて解決しましょう!

2. Seleniumとは

まずSelenium(セレニウム)は、ウェブブラウザの操作を自動化するためのオープンソースツールであり、テストやデータ収集などの作業効率を向上させることができます。Webスクレイピングを行う上で最もポピュラーなツールです。

3. 全体設計

サイトへのログイン情報や、予約設定をファイルに記録します。

準備:予約設定
setting.jsonを作成し、予約したい女の子のURL、予約希望時間、ユーザー名、パスワード、利用場所を記述。今回は予約が完了したら、予約希望時間は削除する仕様にします。何度も同じ予約をしないようにするため。

女の子の出勤日時は毎日0時に更新されるため、下記の本番処理を毎日0時に定期実施することで自動予約を実現します。

本番処理:ログイン~予約完了通知
①設定ファイル読み込み
setting.jsonを読み込みます。今回は設定できる予約は一つのみという仕様にします。女の子の指定はプロフィールページのURLを使用します。CityheavenさんのURLを見る限り、お店ごとのIDや女の子のIDが組み合わせられて構成されております。
②ログイン処理、予約画面の表示
selenium + Google Chrome (chromedriver)を利用して以降の処理は実行します。setting.jsonからログイン情報を取得してログイン実施します。ログイン成功後、指定した女の子のURLから予約画面を表示します。

③予約希望時間の空き状況の確認
タイムテーブル形式で空き情報が表示されるので、予約希望時間とマッチするスロットを選択します。


④予約オプションの選択
 今回は最小機能で実装します、そのため、オプションは選択不可、一番最短の利用時間を選択するような仕様にします。

⑥予約確認/完了
チェックボックスをクリックし、次へボタンを押下します。

⑦予約完了通知
サイトからメールでの予約完了通知はあるので、LINE Notifyを使ってLINEに通知を送るような仕様にしたいと思います。

4. 次回予告 

ここまでいかがだったでしょうか?こういう仕様にしてほしいや、こういう機能もあった方がいいのでは等、ご意見いただけたら幸いです!
次回以降は、第2回で開発環境構築~ログイン処理までのソースコードや設定ファイルの解説、第3回で予約画面表示~LINE通知までの設定を解説しようと思います。

その他、自動化したいネタ等ございましたらコメントお願いいたします!


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