如何自动更新chromedriver

背景

        在使用selenium做爬虫的时候,由于google浏览器的升级,经常要求更新chromedriver驱动。为了解决每次都需要手动下载替换的问题,写了一个脚本可以自动执行。

import os
import re
import zipfile
import requests


url = 'https://registry.npmmirror.com/-/binary/chromedriver/'
download_finename = "chromedriver_mac64.zip"
chromeWebdrivrPath = "/usr/local/bin"


def getChromeDriverVersion():
    """查询Chromedriver版本"""
    outstd2 = os.popen('chromedriver --version').read()
    try:
        vs = outstd2.split(' ')[1]
        # version = ".".join(version.split(".")[:-1])
    except Exception as e:
        print(e)
    finally:
        return vs


def getLatestChromeDriver(version):
    # 获取该chrome版本的最新driver版本号
    versionlist = requests.get(url).json()
    versions = [obj for obj in versionlist
                # 获取版本号 如:99.0.4844.17/、LATEST_RELEASE_100
                # 匹配以数字开头,版本号开头相同的驱动
                if re.match(r"^\d", obj['name']) and version.split(".")[0] == obj['name'].split(".")[0]]
    temp = 0
    latest_version = None
    for obj in versions:
        num = int(obj['name'].replace("/", "").replace(".", ""))
        if num > temp:
            temp = num
            latest_version = str(obj['name']).replace("/", "")
    print(f"与当前chrome匹配的最新chromedriver版本为: {latest_version}")
    # 下载chromedriver
    print("开始下载chromedriver...")
    download_url = latest_version['url'] + download_finename
    file = requests.get(download_url)
    with open("chromedriver_mac64.zip", 'wb') as zip_file:  # 保存文件到脚本所在目录
        zip_file.write(file.content)
    print("下载完成.")
    # 解压
    f = zipfile.ZipFile(download_finename, 'r')
    for file in f.namelist():
        #f.extract(file)
        '''解压Chromedriver压缩包到指定目录'''
        f.extract(file, chromeWebdrivrPath)     # ChromeWebdrivrPath指定的是要替换的webderiver地址
    print("解压完成.")


version = getChromeDriverVersion()
getLatestChromeDriver(version)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值