Edited at

ジムのレッスンスケジュールをスクレイピングしてみた


やろうと思った背景

私はジムのレッスンが好きで、週末はストレス発散もかねて、ジェクサーやコナミといったジムに行きます。

そこで、自分の空き時間に 自分の好きなレッスンがやっているスタジオをすぐに検索したい! と思ったことがきっかけです。

というわけで、自分が通っているスタジオ(ジェクサー、コナミ)のレッスンをスクレイピングして、自分の空き時間に行きたいレッスンを探せるようにしてみます。


スクレピング対象

ジェクサー全店のグループエクササイズ タイムスケジュールを対象とします。

例:ジェクサー・フィットネス&スパ 新宿【グループエクササイズタイムスケジュール】

*コナミもやりたかったのですが、時間の関係で、後日、やることにします。


アーキテクチャ

システム的には以下の通り単純です。DBなどは特に使用せず、CSV出力してスプレッドシートで表示します。



  1. Webスクレイピングクライアント


    1. ジムのレッスンスケジュールページのhtmlを取得する

    2. html解析する

    3. CSV出力する




  2. マニュアル


    1. GoogleドライブのスプレッドシートにCSVを貼り付ける



アーキテクチャ (1).png


Webスクレイピングクライアントの構成


  • 言語


    • Ruby 2.5.1



  • ライブラリ


    • nokogiri

    • page-object

    • selenium-webdriver




プログラム

GitHubにアップしました。

今後、徐々に拡張していきたいので、gemとして作成しました。

https://github.com/YukiFujisawa/training_gym_lesson_batch

ローカル単体で実行する場合は、以下のコマンドでいけます。

$ brew tap homebrew/cask

$ brew cask install chromedriver
$ rake build
$ gem install pkg/training_gym_lesson_batch-0.1.0.gem
$ ruby main.rb > lesson_list.csv


スクレピング結果

Googleドライブのスプレッドシートに出力したものを貼っておきますので、興味のある方はみてください。

ジェクサー全店舗のレッスン約2800レッスンあります。

*2018年12月のレッスンスケジュールなのでその点ご了承ください。

ジェクサー全店舗レッスン.pdf のダウンロード

こちらはインストラクター別にレッスン数を集計してみました。

忙しいインストラクターが一目でわかります。

ジェクサー全店舗レッスンのインストラクター別集計.pdf のダウンロード