首页 > 其他 > 详细

下载driver

时间:2021-05-26 21:20:44      阅读:16      评论:0      收藏:0      [点我收藏+]

注:以下浏览器举例皆为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

原文:https://www.cnblogs.com/felix-test/p/14813923.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!