下载driver

Posted 小幸运

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下载driver相关的知识,希望对你有一定的参考价值。

注:以下浏览器举例皆为chrome

一、获取本机浏览器版本号

windows:通过注册表获取浏览器版本号,version为浏览器版本号

import winreg
string = r\'Software\\Google\\Update\\Clients\\{8A69D345-D564-463c-AFF1-A69D9E530F96}\'
handle = winreg.OpenKey(winreg.HKEY_CURRENT_USER, string, 0, (winreg.KEY_WOW64_64KEY + winreg.KEY_READ))
local_version, _type = winreg.QueryValueEx(handle, "pv")

mac:通过bash命令获取 version

cmd = \'/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --version \'
m = os.popen(cmd)
result = m.readlines()[0].split(\' \')
local_version = result[2]
m.close()

二、获取driver的所有版本

国内镜像源地址:

 home_url=http://npm.taobao.org/mirrors/chromedriver/           

国外镜像源地址:

web页面地址为:http://chromedriver.storage.googleapis.com/index.html

abroad_url=http://chromedriver.storage.googleapis.com/?delimiter=/&prefix=   

获取所有版本

response = requests.get(url) pattern = re.compile(\'<Prefix>(\\d.*?)/</Prefix>\') 
raw_version_list = re.findall(pattern=pattern, string=response.text)                                                        

三、匹配版本

法一:只匹配前三位版本号,最后一个不匹配最接近的版本

version_re = re.compile(r\'^[1-9]\\d*\\.\\d*.\\d*\')  # 匹配前3位版本号的正则表达式
match_list = []
for i in raw_version_list:
    raw_v = version_re.findall(i)[0]	#前3位的版本号
    local_v=version_re.findall(local_version)[0]
    if local_v == raw_v:
        match_list.append(i)
driver_version=match_list[-1]   #取列表中的最后一个 

法二:匹配本机浏览器版本与driver版本最接近的版本

chrome_major_version, chrome_minor_version = local_version.rsplit(\'.\', 1)
for version in raw_version_list:
    major_version, minor_version = version.rsplit(\'.\', 1)
    if chrome_major_version == major_version:
        candidate_minor_version_list.append(minor_version)

target_minor_version = candidate_minor_version_list[0]
for current_minor_version in candidate_minor_version_list[1:]:
    if abs(int(current_minor_version) - int(chrome_minor_version)) \\
            < abs(int(target_minor_version) - int(chrome_minor_version)):
        target_minor_version = current_minor_version

driver_version = chrome_major_version + \'.\' + target_minor_version

四、下载driver

if platform_system == \'windows\':
   remote_driver_path = "http://chromedriver.storage.googleapis.com/%s/chromedriver_win32.zip" % driver_version
   local_driver_path = os.path.join(self._driver_save_path, "chromedriver.exe")
elif platform_system == \'mac\':
   remote_driver_path = "http://chromedriver.storage.googleapis.com/%s/chromedriver_mac64.zip" % driver_version
   local_driver_path = os.path.join(self._driver_save_path, "chromedriver")
else:
   raise ValueError(\'platform {} is not supported\'.format(platform_system))

以上是关于下载driver的主要内容,如果未能解决你的问题,请参考以下文章

根据图片的url地址下载图片到本地保存代码片段

片段中的Firebase数据不是持久的,会重新下载

如何在浏览器中显示动态报告而不下载到客户端驱动器?

我无法从 firebase 获取下载网址()。请任何人帮助这是我的代码和错误。 (我正在使用片段)[重复]

16个必备的JavaScript代码片段

用于从 cloudkit 检索单列的代码模式/片段