体育状況をrubyで取得する

中西研の北原です。SFCでは体育を30回もとらないと卒業出来ません。しかし体育は予約制なので運がわるいと抽選から漏れてしまいます。しかし、予約を解除する人は毎回でるので、うまく予約したいものです。そこで前々から興味があったrubyで作られているパーサのnokogiriを使ってgrowlに体育の状況を通知させてみました。

今回使ったライブラリはパーサであるnokogiri、ブラウザのようなアクセスを可能にするmechanize、rubyから簡単にgrowl通知を行うruby-growlです。どれもrubyのパッケージ管理システムであるgemsからインストールできます。

rubyでは通常簡単なhttpアクセスではopen-uriを使いますが、今回のようなhttps通信には対応していません。そこでmechanizeを利用することで簡単に取得します。ちなみにmechanizeはinputフィールドを埋め、submitボタンを押すということも可能でとても便利なライブラリです。

ここで取得したソースをnokogiriに渡し、パースします。nokogiriではこのパースした物に対してxpath形式でアクセスが可能です。今回は簡単な例としてなので授業名だけで検索をしています。最後にgrowl-rubyを使い通知を行っています。これをcron等にかけて1時間ごとに実行すればきっと体育の取得できる確立があがるのではないでしょうか。

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

コメントを残す