概要
PythonにおいてHeadless Chrome (ヘッドレスモード) を用いたWebスクレイピング時に,下記のエラーメッセージが表示されたので備忘録として対処法を記載する.
Message: session not created: This version of ChromeDriver only supports Chrome version 86 chromedriver-binary
Google Chromeのバージョンを確認
詳細は下記リンクを参照
以前投稿した記事
chromedriver-binaryのバージョンを確認
pip3 show chromedriver-binary
Name: chromedriver-binary
Version: 86.0.4240.22.0
...
上記の場合
Google Chromeのバージョンは96.0.4664.55
chromedriver-binaryのバージョンは86
結論から言うとGoogle Chromeの自動更新により,chromedriver-binaryとの間にバージョン差が生じてしまう事が原因である.
chromedriver-binaryのバージョン更新
上記によりGoogle Chromeのバージョンが96.0.4664.55
であることが確認できたので,下記コマンドを実行する.
chromedriver-binaryのバージョンを指定してインストール
pip3 install chromedriver-binary==96.0.4664.55
しかし,上記コマンドを実行すると下記インストールエラーが表示されるため落ち着いて対処しよう.
ERROR: Could not find a version that satisfies the requirement chromedriver-
binary==96.0.4664.55 (from versions: 2.29.1, 2.31.1, 2.33.1, 2.34.0, 2.35.0, 2.35.1,
2.36.0, 2.37.0, 2.38.0, 2.39.0, 2.40.1, 2.41.0, 2.42.0, 2.43.0, 2.44.0, 2.45.0,
2.46.0, 70.0.3538.16.0, 70.0.3538.67.0, 70.0.3538.97.0, 71.0.3578.30.0,
71.0.3578.33.0, 71.0.3578.80.0, 71.0.3578.137.0, 72.0.3626.7.0, 72.0.3626.69.0,
73.0.3683.20.0, 73.0.3683.68.0, 74.0.3729.6.0, 75.0.3770.8.0, 75.0.3770.90.0,
75.0.3770.140.0, 76.0.3809.12.0, 76.0.3809.25.0, 76.0.3809.68.0, 76.0.3809.126.0,
77.0.3865.10.0, 77.0.3865.40.0, 78.0.3904.11.0, 78.0.3904.70.0, 78.0.3904.105.0,
79.0.3945.16.0, 79.0.3945.36.0, 80.0.3987.16.0, 80.0.3987.106.0, 81.0.4044.20.0,
81.0.4044.69.0, 81.0.4044.138.0, 83.0.4103.14.0, 83.0.4103.39.0, 84.0.4147.30.0,
85.0.4183.38.0, 85.0.4183.83.0, 85.0.4183.87.0, 86.0.4240.22.0, 87.0.4280.20.0,
87.0.4280.87.0, 87.0.4280.88.0, 88.0.4324.27.0, 88.0.4324.27.1, 88.0.4324.96.0,
89.0.4389.23.0, 90.0.4430.24.0, 91.0.4472.19.0, 91.0.4472.101.0, 92.0.4515.43.0,
92.0.4515.107.0, 93.0.4577.15.0, 93.0.4577.63.0, 94.0.4606.41.0, 94.0.4606.61.0,
94.0.4606.113.0, 95.0.4638.10.0, 95.0.4638.17.0, 95.0.4638.54.0, 95.0.4638.69.0,
96.0.4664.18.0, 96.0.4664.35.0, 96.0.4664.45.0, 97.0.4692.20.0)
ERROR: No matching distribution found for chromedriver-binary==96.0.4664.55
実は上記インストールエラー画面の括弧内にヒントがある.
今回指定したバージョン96.0.4664.55
のchromedriver-binaryは配布されていないため,括弧内からこの数値に近いバージョンを見つける.
ちなみに,バージョン96.0.4664.45.0
がそれに該当するはずである.
chromedriver-binaryのバージョン96.0.4664.45.0
を指定して改めてインストール
pip3 install chromedriver-binary==96.0.4664.45.0
chromedriver-binaryのバージョンを確認
pip3 show chromedriver-binary
Name: chromedriver-binary
Version: 96.0.4664.45.0
...
chromedriver-binaryのバージョンがGoogle Chromeのバージョン96.0.4664.55
に近い96.0.4664.45.0
であることが確認された.
これでエラーは発生しなくなるが,Google Chromeのバージョン更新は不定期的に必ず行われるため今後同様のエラーが発生しても慌てずに.
追記
Seleniumを用いたWebスクレイピングやWebブラウザ制御において,Google Chromeのバージョン更新に伴いchromedriver-binaryのバージョン更新を行う必要であることが分かった.
その他にもChromeDriverのバージョン更新も行わなければならないため注意が必要である.
ChromeDriverのバージョン更新に関しては下記リンクを参照
以前投稿した記事