Python3 selenium 自动更新chrome浏览器驱动文件
说明
实现原理是当使用的chromedriver.exe与当前Chrome浏览器版本不一致时会抛出异常,
在异常信息中会包含当前Chrome版本信息和Chrome浏览器安装地址信息,通过捕获异常信息,
正则匹配就可以过滤出Chrome版本号,然后再去官方动态下载对应版本的驱动并解压就可以了
前提是需要内置一个chromedriver.exe,不然抛出的是其他异常信息就获取不到版本号了
经过修改,即使当前版本的驱动没有更新也不会报错而是选择最新的驱动进行下载。
请自己替换文件路径
def get_browser(): # 不加载图片和css chrome_options = webdriver.ChromeOptions() # 不显示浏览器窗口 chrome_options.add_argument('headless') prefs = {"profile.managed_default_content_settings.images": 2, 'permissions.default.stylesheet': 2} chrome_options.add_experimental_option("prefs", prefs) try: driverobject = Service(r"D:\Program Files\chromedriver.exe") driver_ = Chrome(service=driverobject, options=chrome_options) driver_.get("http://baidu.com") return driver_ # 驱动不匹配时自动更新 except Exception as msg: print("浏览器驱动不匹配正在更新...") reg = "Current browser version is.+with" chrome_version = re.search(reg, str(msg)).group().replace("Current browser version is ", "").replace(" with", "") print("Chrome Version:" + chrome_version) chrome_version_list = chrome_version.split(".") str_ = '.' del chrome_version_list[3] re_ = str_.join(chrome_version_list) + ".\d{2}" r = requests.get("http://chromedriver.storage.googleapis.com") chrome_version_list_2 = list(set(re.findall(re_, r.text))) chrome_version_list_2.sort() chrome_version = chrome_version_list_2[len(chrome_version_list_2) - 1] url = 'http://chromedriver.storage.googleapis.com/' + chrome_version + '/chromedriver_win32.zip' path = r"D:\Program Files\chromedriver_win32.zip" wget.download(url, path) with zipfile.ZipFile(r"D:\Program Files\chromedriver_win32.zip") as zf: zf.extractall(r"D:\Program Files") os.remove(r"D:\Program Files\chromedriver_win32.zip") driver_ = get_browser() return driver_
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix