下载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的主要内容,如果未能解决你的问题,请参考以下文章