背景

        在使用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)

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: