自動予約スクリプト
お久し振りです、みなとです。最近出張が立て続けでゆっくり近況報告する暇がありませんでした。御アクセス頂いている皆様には申し訳ない限りです。
さて、出張に絡んで今回の話題はクローリングになります。
きっかけは出張先に近いホテルの予約が取りづらく、1泊のために全力を費やす毎日が続いていたことでした。
ホテルの予約とはいえやってることはシンプルだし、どうにかならんかな、と思って考えついたのがクローリングの応用でした。
ということで某宿泊施設限定ですがPythonでスクリプトを組んでみたのでGitHubに公開しておきます。
別に技術としては目新しいことはないし、そもそもPython + ChromeDriver + Selenuimという面倒くさすぎる環境でしか動作しないので使い物になるかどうかは微妙なところですが、それでもこれを導入して1週間、予約が取れなかった日は一度もありません。
あまりにも頻繁にアクセスを仕掛けるとDoS攻撃を疑われる可能性もあるので多用は厳禁と思いますが、一応30秒に1回のトライ、という設定にiniでしてはいます。
loggingモジュールとの相性の関係でWindowsではログが1MBを超えてファイルのローテーションを行おうとしたときに落ちる不具合が今のところ課題となっています。当面はLinuxで動かせばいいと思います。
あとコマンドラインに出力するデータの整形だったり、予約確定ギリギリのところで満室になった時の例外処理だったりが入ってなかったり、そもそもコマンドラインで動かすツールというもの自体今の御時世時代遅れも甚だしかったりと色々問題点はあるかもしれませんが、後々修正予定のところもあります。せっかくのGitHubだし色んな人にブランチ切って改善策を頂きたいというもの相変わらず……(笑)
そんなこんなで本日は以上です。