5 回答

TA貢獻1804條經驗 獲得超8個贊
這是另一個解決方案,webdriver_manager不支持。此腳本將下載最新的 chrome 驅動程序版本。
import requests
import wget
import zipfile
import os
# get the latest chrome driver version number
url = 'https://chromedriver.storage.googleapis.com/LATEST_RELEASE'
response = requests.get(url)
version_number = response.text
# build the donwload url
download_url = "https://chromedriver.storage.googleapis.com/" + version_number +"/chromedriver_win32.zip"
# download the zip file using the url built above
latest_driver_zip = wget.download(download_url,'chromedriver.zip')
# extract the zip file
with zipfile.ZipFile(latest_driver_zip, 'r') as zip_ref:
zip_ref.extractall() # you can specify the destination folder path here
# delete the zip file downloaded above
os.remove(latest_driver_zip)

TA貢獻1828條經驗 獲得超3個贊
這是 Python 的另一種方法 -
import chromedriver_autoinstaller
from selenium import webdriver
opt = webdriver.ChromeOptions()
opt.add_argument("--start-maximized")
chromedriver_autoinstaller.install()
driver = webdriver.Chrome(options=opt)
driver.get('https://stackoverflow.com/')
這里有更多信息
https://pypi.org/project/chromedriver-autoinstaller/

TA貢獻1951條經驗 獲得超3個贊
我有一個稍微漂亮一點的版本
它會檢測到你的 chrome 版本,獲取正確的驅動程序
def download_chromedriver():
def get_latestversion(version):
url = 'https://chromedriver.storage.googleapis.com/LATEST_RELEASE_' + str(version)
response = requests.get(url)
version_number = response.text
return version_number
def download(download_url, driver_binaryname, target_name):
# download the zip file using the url built above
latest_driver_zip = wget.download(download_url, out='./temp/chromedriver.zip')
# extract the zip file
with zipfile.ZipFile(latest_driver_zip, 'r') as zip_ref:
zip_ref.extractall(path = './temp/') # you can specify the destination folder path here
# delete the zip file downloaded above
os.remove(latest_driver_zip)
os.rename(driver_binaryname, target_name)
os.chmod(target_name, 755)
if os.name == 'nt':
replies = os.popen(r'reg query "HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon" /v version').read()
replies = replies.split('\n')
for reply in replies:
if 'version' in reply:
reply = reply.rstrip()
reply = reply.lstrip()
tokens = re.split(r"\s+", reply)
fullversion = tokens[len(tokens) - 1]
tokens = fullversion.split('.')
version = tokens[0]
break
target_name = './bin/chromedriver-win-' + version + '.exe'
found = os.path.exists(target_name)
if not found:
version_number = get_latestversion(version)
# build the donwload url
download_url = "https://chromedriver.storage.googleapis.com/" + version_number +"/chromedriver_win32.zip"
download(download_url, './temp/chromedriver.exe', target_name)
elif os.name == 'posix':
reply = os.popen(r'chromium --version').read()
if reply != '':
reply = reply.rstrip()
reply = reply.lstrip()
tokens = re.split(r"\s+", reply)
fullversion = tokens[1]
tokens = fullversion.split('.')
version = tokens[0]
else:
reply = os.popen(r'google-chrome --version').read()
reply = reply.rstrip()
reply = reply.lstrip()
tokens = re.split(r"\s+", reply)
fullversion = tokens[2]
tokens = fullversion.split('.')
version = tokens[0]
target_name = './bin/chromedriver-linux-' + version
print('new chrome driver at ' + target_name)
found = os.path.exists(target_name)
if not found:
version_number = get_latestversion(version)
download_url = "https://chromedriver.storage.googleapis.com/" + version_number +"/chromedriver_linux64.zip"
download(download_url, './temp/chromedriver', target_name)

TA貢獻1828條經驗 獲得超4個贊
截至 2021 年 8 月,這是狀態:-
chromedriver-自動安裝程序
自動下載并安裝支持當前安裝的 chrome 版本的 chromedriver。此安裝程序支持 Linux、MacOS 和 Windows 操作系統。
安裝
pip install chromedriver-autoinstaller
用法
Just type import chromedriver_autoinstaller in the module you want to use chromedriver.
例子
from selenium import webdriver
import chromedriver_autoinstaller
chromedriver_autoinstaller.install() # Check if the current version of chromedriver exists
# and if it doesn't exist, download it automatically,
# then add chromedriver to path
driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
添加回答
舉報