chromedriver自動アップデート

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))

“chromedriver自動アップデート” への1件の返信

  1. 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)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)