【Python】Headless Chromeを用いたWebスクレイピング時に"Message: session not created: This version of ChromeDriver only supports Chrome version ※※ chromedriver-binary"エラーが発生した場合の対処法 （Selenium 4.6.0以降は不要）

## 概要
PythonにおいてHeadless Chrome (ヘッドレスモード) を用いたWebスクレイピング時に，下記のエラーメッセージが表示されたので備忘録として対処法を記載する．

```
Message: session not created: This version of ChromeDriver only supports Chrome version 86 chromedriver-binary
```

Google Chromeのバージョンを確認

詳細は下記リンクを参照
[以前投稿した記事](https://qiita.com/rimorimo/items/3e60faca48505993fd0d#google-chrome%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%A2%BA%E8%AA%8D)

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**のバージョン更新に関しては下記リンクを参照
[以前投稿した記事](https://qiita.com/rimorimo/items/3e60faca48505993fd0d)