自衛隊によるコロナワクチンの大規模接種の予約を取るツールです。東京会場の3回目接種に対応しています。
あまり特別なことはしていませんので、他の多くの環境でも動くと思います。
- macOS Big Sur 11.6.3
- ruby 2.6.3p62
- selenium-webdriver 4.1.0
- Google Chrome 98.0.4758.80
これらは必須です。必要ならroot権限で。
- gem install selenium-webdriver
- brew install chromedriver
- 引数は、6桁の数値の市区町村コード、10桁の数値の接種券番号、8桁の数値の生年月日です。
- もし桁数が足りない場合は頭にゼロを加えてください。
- 使い方
- reserve_vaccine_20220128.rb 市区町村コード(6桁) 接種券番号(10桁) 生年月日(8桁)
- 例
- reserve_vaccine_20220128.rb 012345 0123456789 20010203
- 使い方
- ブラウザが立ち上がり、ログインページが表示されます。
- 市区町村コード、接種券番号、生年月日が自動で入力されます。
- 接種枠の空き状況のカレンダーが表示されます。空きが見つかるまで0.5秒程度の間隔でリロードが行われます。
- 空き日が見つかると、その日の空き時間のページに移ります。空き時間が見つからなければカレンダーに戻ります。
- 空き時間が見つかれば、予約を確保します。
- 予約内容の確認ページが表示されます。この時、残り枠が少ないと他の人に先を越されて予約確保に失敗し、カレンダーに戻ります。
- 予約確保が成功すると、予約日時などの情報を表示したページが表示され、ブラウザのスクリーンショットを撮影して終了です。
- 実行中は、ブラウザのズーム操作(拡大縮小)やウィンドウ枠のサイズ変更などをしないでください。安定動作しなくなるかもしれません。
- 空き日はもっとも近い日を確保します。
- 空き時間はもっとも早い時間を確保します。
- CPUの処理能力や負荷状況によっては安定動作しないかもしません。その場合は、実行ファイル内の次の行のコメントをはずして、待ち時間(秒)を設定してみてください。
- #driver.manage.timeouts.implicit_wait = 0.25
- システムの仕組み上、複数の予約を取ることはできませんので、新しい予約を取る場合はすでに取得済みの予約をキャンセルしてから行う必要があります。
- サーバに過剰な負荷を掛けないよう、実行には細心の注意をお願いします。
- jakeさん(twitter @jake44576142)のVaccine_reservation_toolを参考にさせていただきました。御礼申し上げます。