コード一覧

Herokuでクロムドライバーとブラウザのバージョンを確認して合わせる方法

定期的にスクレイピングを動かしていましたが、急にエラーで動かなくなってしまいました。まずは、ログを確認します。

念のためログの確認方法

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