定期的にスクレイピングを動かしていましたが、急にエラーで動かなくなってしまいました。まずは、ログを確認します。
念のためログの確認方法
heroku login
heroku logs --tail --app アプリ名
ヘロクにログインして、ログをみて、エラーが出ているか確認する。
たぶん、以下のようなエラーが出る
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 102
Current browser version is 104.0.5112.79 with binary path /app/.apt/usr/bin/google-chrome
chromeドライバーは102だけど、ブラウザーのバージョンは104になっているからエラーだよ。みたいな感じ
クロムとクロムドライバーのバージョンを確認する
クロムのバージョン
heroku run google-chrome --version -a アプリ名
→ Google Chrome 104.0.5112.79 unknown
クロムドライバーのバージョン
heroku run chromedriver -v -a アプリ名
→ → ChromeDriver 102.0.5005.27
クロムは104でドライバーは102だと判明
※ドライバーのバージョンを合わせる!
※クロムのバージョンはアップデートしたら勝手に最新に上がってしまうので、ドライバーがついていかない。なのでドライバーは手動でアップしていくイメージです。
対応表をみてドライバーのバージョンを調べる
https://chromedriver.chromium.org/downloads
ここで対応表があるので参考にする
今回なら、クロムが104なので、
ChromeDriver 104.0.5112.79 Supports Chrome version 104
ChromeDriver 104.0.5112.29 Supports Chrome version 104
ChromeDriver 104.0.5112.20 Supports Chrome version 104
以下の3つのドライバーのバージョンにすれば、OK
ドライバーのバージョンを設定する
heroku config:set -a アプリ名 CHROMEDRIVER_VERSION="104.0.5112.79"
最後の数字の部分が指定するバージョンの数字になる
ここから、ポイントだけど、これで終わりじゃない。
これをやってから、再度ファイルをアップする必要がある。
git init
heroku git :remote -a アプリ名
git add .
git commit -am "コメント"
git push heroku master
一通り上記まで完了すれば、OK
最後にもう一回ドライバーのバージョンを確認して完了!
heroku run chromedriver -v -a アプリ名
→ → ChromeDriver 104.0.5112.79