PythonでChromeDriverManagerが使えなくなってしまった
Python
Pythonでseleniumを使い、スクレイピングをしようとしたところ過去とコードやモジュール環境を変えていないにも関わらず動作しなかった。
とりあえずエラー文を貼っつけておきます。
Traceback (most recent call last):
File "C:\PathToFile\tool.py", line 22, in __init__
self.driver = webdriver.Chrome(ChromeDriverManager().install())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PathToPython\Python\Python311\Lib\site-packages\webdriver_manager\chrome.py", line 39, in install
driver_path = self._get_driver_path(self.driver)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PathToPython\Python\Python311\Lib\site-packages\webdriver_manager\core\manager.py", line 30, in _get_driver_path
file = self._download_manager.download_file(driver.get_driver_download_url())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PathToPython\Python\Python311\Lib\site-packages\webdriver_manager\drivers\chrome.py", line 40, in get_driver_download_url
driver_version_to_download = self.get_driver_version_to_download()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PathToPython\Python\Python311\Lib\site-packages\webdriver_manager\core\driver.py", line 51, in get_driver_version_to_download
self._driver_to_download_version = self._version if self._version not in (None, "latest") else self.get_latest_release_version()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PathToPython\Python\Python311\Lib\site-packages\webdriver_manager\drivers\chrome.py", line 62, in get_latest_release_version
resp = self._http_client.get(url=latest_release_url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PathToPython\Python\Python311\Lib\site-packages\webdriver_manager\core\http.py", line 37, in get
self.validate_response(resp)
File "C:\PathToPython\Python\Python311\Lib\site-packages\webdriver_manager\core\http.py", line 16, in validate_response
raise ValueError(f"There is no such driver by url {resp.url}")
ValueError: There is no such driver by url https://chromedriver.storage.googleapis.com/LATEST_RELEASE_118.0.5993読んだところ、本来ChromeDriverがダウンロードできたURLから自動で最新のChromeDriverがダウンロードできなくなっている様子。
そのため別の方法でChromeDriverをダウンロードしなければいけなくなってしまいました。
どうやらseleniumをアップデートするとDriverManagerが付属するようになったらしいのでseleniumをアップデートしてみた。
C:\>python -m pip install --upgrade selenium
Requirement already satisfied: selenium in c:\PathToPython\python\python311\lib\site-packages (4.8.0)
...(省略)
Successfully installed selenium-4.14.0seleniumを4.8.0から4.14.0にアップデートしました。約8ヶ月ほどアップデートを放置していたようです。
Pythonのコードをちょこっと書き換えます。
self.driver = webdriver.Chrome(ChromeDriverManager().install())コード中の上記の部分を
self.driver = webdriver.Chrome()に書き換えます。
これだけです。
seleniumにデフォルトでDriverManagerがついてくることでfrom selenium import webdriverだけで良くなり、大幅に記述が簡単になりました。嬉しいですね。
