Pythonで自動的にchromedriverアップデート処理。
例外処理など全てなし、必要な部分のみ。
# coding: utf-8
import os
from webdriver_manager.utils import chrome_version
from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
import urllib.request
import zipfile
# ファイルパス
zipfilepath = r'配置パス\chromedriver_win32.zip'
exefilepath = r'配置パス\chromedriver.exe'
# chromeバージョン
chrome_version = chrome_version()
# ダウンロードURL取得
url = 'https://chromedriver.chromium.org/downloads'
download_url = None
html = urlopen(url).read()
soup = BeautifulSoup(html, 'html.parser')
elements = soup.select('html body a')
pattern = r"^[0-9]{2}[.]+[0-9]{1,2}[.]+[0-9]{4}$"
for element in elements:
if ('ChromeDriver' in element.text):
vd = element.text.replace('ChromeDriver', '').strip()[0:len(chrome_version)]
if (re.match(pattern, vd) and chrome_version >= vd):
download_url = element.get('href')
break
# ダウンロード
download_url = download_url.replace('index.html?path=', '') + os.path.basename(zipfilepath)
urllib.request.urlretrieve(download_url, zipfilepath)
# 解凍
with zipfile.ZipFile(zipfilepath) as existing_zip:
existing_zip.extract('chromedriver.exe', os.path.dirname(exefilepath))
from webdriver_manager.utils import chrome_version
がエラーになったことにより、Chromeバージョン取得が以下のように修正します。
——————————————–
pattern = r’\d+\.\d+\.\d+’
cmd = r’reg query “HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon” /v version’
stdout = os.popen(cmd).read()
version = re.search(pattern, stdout)
chrome_version = version.group(0)