本ページには PR が含まれます。
スクレイピングのツールを作ったけど
ChromeDriverのバージョンが変わって動かない…。
今回はseleniumスクレイピングで使用するChromeDriverのバージョンを自動更新できるライブラリの使い方をご紹介します。
サンプルコードを見ながらサクサク処理を試せるので、ぜひ参考にしてみてください。
seleniumスクレイピングのくわしい使い方はこちら
Pythonの実践的なWebスクレイピング技術について学びたいという方に向けてUdemy学習コースを公開しています。
\10/27(金)までの 90%OFFクーポンで Webスクレイピングを学べる!!/
30日間返金保証!
すぐにでもスクレイピング技術を活かせるようになりますよ!
seleniumスクレイピングでのChromeDriverバージョンエラー
古いバージョンのChromeDriverを使ってスクレイピングを実行しようとすると、以下のようなエラー文が出てしまいます。
---------------------------------------------------------------------------
SessionNotCreatedException Traceback (most recent call last)
~~~~~~~~~~中略~~~~~~~~~~
This version of ChromeDriver only supports Chrome version 95
Current browser versionis 109.0.5414.119 with binary path /Applications/Google Chrome.app/Contents
こうしたバージョンエラーを回避できるwebdriver-managerライブラリがあるんです!
ライブラリのインストール
まずはwebdriver-managerライブラリをインストールしましょう。
コマンドプロンプト(Windows)もしくはターミナル(macOS)で以下を実行します。
pip install webdriver-manager
pip install selenium
最後の行に「Successfully Installed ~~~」と表示されていればインストールは成功です。
webdriver-managerライブラリの使い方
従来のドライバー設定と比較しながら、webdriver-managerライブラリの使い方を確認しましょう。
(PyPI公式 : https://pypi.org/project/webdriver-manager/)
従来のドライバー設定方法
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
driver_path = "~~~Chromeドライバーをダウンロードした先のパス~~~/chromedriver"
driver = webdriver.Chrome(service=Service(executable_path=driver_path))
このように手動でダウンロードしたchromedriverのパスを文字列で指定していましたが、
webdriver-managerライブラリでは文字列での指定は不要になります。
webdriver-managerライブラリを使ったドライバー設定方法
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# ↓この行を追加(ここではwebdriverとmanagerの間はアンダースコアであることに注意。ややこしいですが...。)
from webdriver_manager.chrome import ChromeDriverManager
# 自動で最新バージョンをダウンロードしてパス名を返してくれる。
driver_path = ChromeDriverManager().install()
driver = webdriver.Chrome(service=Service(executable_path=driver_path))
プログラム自体も大きく変更する必要がないので、ぜひwebdriver-managerライブラリを使ってみてください。
実際にプログラムを実行した際の出力を確認しておきます。
====== WebDriver manager ======
Current google-chrome version is 109.0.5414
Get LATEST chromedriver version for 109.0.5414 google-chrome
There is no [mac64] chromedriver for browser in cache
Trying to download new driver from https://chromedriver.storage.googleapis.com/109.0.5414.74/chromedriver_mac64.zip
Driver has been saved in cache [/Users/~~~あなたのPCユーザ名~~~/.wdm/drivers/chromedriver/mac64/109.0.5414.74]
まとめ
本記事ではseleniumスクレイピングで使用するChromeDriverのバージョンを自動更新できるライブラリの使い方をご紹介しました。
ChromeDriverのバージョン管理に困っていたという方はぜひ活用してみてくださいね。