Pythonで「ふもとっぱら」キャンプ場へ行き放題Botをつくってみた
さいきん、とあるきっかけから 「バイク × キャンプ」に目覚めてしまい、いろいろギアを買い揃えては、キャンプ場へ足しげく通っている今日このごろ。
特に静岡県にある「ふもとっぱら」というキャンプ場がお気に入りなのですが、ここはキャンパーの聖地らしく(キャンプアニメ「ゆるキャン△」の舞台にもなっています)
ただ、聖地ゆえにWEB予約が激混みで、もはや年内週末は予約が取れない、、、というレベル。(キャンプブーム恐るべし…)
キャンセル空きが出た瞬間に予約を入れないと、またたく間に埋まってしまい予約が取れないという「課題」に対して、プログラム(Python)で自動巡回させることで「解決」できたよ、というお話です。
こんな感じでズバッとLINE通知してくれます、ありがたい…🙏
どんなアプリなの?
つくったアプリケーションは以下。無料で作れるのがありがたい。。😀
実際の予約ページはこんな感じ、なるほど週末は埋まっておる・・・
使った技術は以下。
Seleniumでブラウザ操作 → BeautifulSoupで空き状況を取得 → LINE Notifyで通知 、というPythonスクリプトを Heroku で定期実行する、というシンプルな構成です。
全体像はこんな感じ
かかった時間は10時間ほど。
Herokuの設定は今回で理解できたので、次回以降はもう少し短縮できそう。
実際のコード
実際にHerokuへデプロイしているコードはこちら。
冗長でキレイなコードではないですが、コメントなど頂けるとうれしいです。
つまずいたポイント
ここからは、つまずいたポイントと助かった記事をご紹介します。
同じような実装をされる方の参考になれば幸いです😀
① SeleniumとBeautifulSoupの使い分けが分からなかった
スクレイピング初心者だったので、名前はよく聞く2ライブラリを実際どう使えばよいの??という感じでした。こちらの記事が、全体像が簡潔に書かれていて分かりやすかったです。
② LINE Notify の設定
以下記事をみながらLINE Notify ページで実際にやっていけば、意外とかんたんに出来ました。LINE Notify自体がシンプルな作りになっているので、助かりました!
③ Heroku へのデプロイ&定期実行
ここが一番苦労しました…。とはいえ、メジャーなサービスなのでググればいろいろ出てきました。詰まったポイントと助けてもらった記事は以下。
そもそもHeroku とは?(↓)
外部ライブラリの使用(requirements.txtの作成)やheroku schedulerの使用方法など、詰まるポイントをエラーメッセージ付きで説明してくれています。(↓)
chromedriverの設定でバグったときにお世話になりました。Heroku側でBuildpackをインストールしておく必要があるようです。(↓)
さいごに
Pythonは普段データ分析まわりで活用しているのですが、こうやってモノづくりに使ってみると、自分の作ったものがちゃんと動いて役に立つ、という新しい感動があり、とても新鮮でした。
また、ソフトウェアサービスの奥深さを少しですが体験することができ、世の中の動いてるサービスすごい、、と少し違った目線を持つこともできました。
また、ちょこちょことつくってnoteへ載せていこうと思います。
さいごになりますが、
「バイク × キャンプ」はいいぞ〜〜
【番外編①】このnoteを参考にしていただけました!
このnoteを参考に、同じようなBotをつくられた方の記事(うれしい)
自分のnoteでは端折ってしまった技術的なつまりポイントも、丁寧に書いてくださっているので、実際にBotをつくる際はこちらも参考にするとスムーズに作れると思います😀
【番外編②】YouTubeでも予約困難なキャンプ場として紹介されていました
こちらのYouTubeでも、「ふもとっぱら」キャンプ場が予約困難なキャンプ場5選に入っていました(見ていると行きたくなる・・・)
ちなみに5選のラインナップは以下でした(納得)
①浩庵キャンプ場
②ふもとっぱら
③西湖自由キャンプ場
④陣馬形山キャンプ場
⑤ほったらかしキャンプ場 ※日本一予約が取りにくいと紹介(たしかに…)
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?