rubyで体育を予約したい

中西研の北原です。前々回は、rubyで体育の予約状況を取得しました。予約状況が取得できるようになると今度は体育の予約を自動で取ってほしくなります。ではやってみましょう。今回も便利なmechanizeを使います。mechanizeではブラウザのような動きをプログラムを書いて動作させることが出来ます。まず体育のページを見るとログインをすることが必要そうです。mechanizeでは取得したページからフォームを取得し、テキスト、パスワード等を埋め送信することが出来ます。

体育を予約する流れとしては、ログインして右メニューにある「予約」というボタンを押し、任意の日付を選択肢、任意の体育が空いていたならば、選択し、予約ボタンを押します。

まず、ページにあるリンクの一覧を取得することが出来ます。htmlファイルを見てみると「予約」ボタンはリンクにreserveが入っており、なおかつmode=selectというパラメータがないものということが分かりました。そのリンクにたいしてclickというメソッドを呼ぶことでマウスでクリックして次のページに飛ぶような感覚で操作できます。

次に任意の日付をリンク一覧から取得しclickします。後は体育の予約状況であるテーブルをパースし、もし空いていたならば、そのテーブルの横にあるraddiobuttonを選択し(check)、送信することで予約することが出来ます。

これで体育の予約を取ることが出来るプログラムを書くことが出来ました。これをcronなどで一定期間毎に実行することで効率的な体育取得が出来るんじゃないでしょうか。

カテゴリー: diary パーマリンク

コメントを残す