国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

自動(dòng)更新Selenium驅(qū)動(dòng)chromedriver

這篇具有很好參考價(jià)值的文章主要介紹了自動(dòng)更新Selenium驅(qū)動(dòng)chromedriver。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

由于谷歌游覽器經(jīng)常自動(dòng)更新導(dǎo)致selenium驅(qū)動(dòng)失效需要重新下載,如何讓代碼自動(dòng)更新selenium驅(qū)動(dòng)的方法呢?

selenium連接谷歌游覽器拋出異常時(shí),會(huì)展示當(dāng)前谷歌游覽器的版本信息,我們可以到selenium驅(qū)動(dòng)下載的網(wǎng)站獲取全部版本信息,然后找個(gè)一個(gè)匹配的版本進(jìn)行下載并解壓即可。

為了更快的下載速度,這里我選擇國(guó)內(nèi)的鏡像站:http://npm.taobao.org/mirrors/chromedriver/

它會(huì)重定向到:https://registry.npmmirror.com/binary.html?path=chromedriver/

經(jīng)過開發(fā)者工具檢查,可以找到獲取最新的全部版本信息的接口:https://registry.npmmirror.com/-/binary/chromedriver/

我按照前三個(gè)號(hào)作為鍵進(jìn)行匹配,下載小版本號(hào)最大的作為驅(qū)動(dòng)。

最終完整代碼為:

from selenium import webdriver
from selenium.common.exceptions import SessionNotCreatedException
import re
import os
import requests
import zipfile
import itertools


def getChromeDriver(options=None):
    """代碼作者:小小明-代碼實(shí)體 xxmdmst.blog.csdn.net"""
    try:
        driver = webdriver.Chrome(options=options)
        return driver
    except SessionNotCreatedException as e:
        driver_version = re.search(
            "Chrome version ([\d.]+)", str(e)).group(1)
        chrome_version = re.search(
            "Current browser version is ([\d.]+) with", str(e)).group(1)
        print(f"驅(qū)動(dòng)版本:{driver_version},谷歌游覽器版本:{chrome_version},不兼容\n開始更新驅(qū)動(dòng)...")
        res = requests.get(
            "https://registry.npmmirror.com/-/binary/chromedriver/")
        versions = [obj["name"][:-1] for obj in res.json() if re.match("\d+",
                                                                       obj["name"]) and obj["name"].count(".") == 3]
        versions = {key: max(versions_split, key=lambda x: int(x[x.rfind(".")+1:]))
                    for key, versions_split in itertools.groupby(versions, key=lambda x: x[:x.rfind(".")])}
        dest_version = versions[chrome_version[:chrome_version.rfind(".")]]
        print("驅(qū)動(dòng)將更新到", dest_version)
        file = f"chromedriver_{dest_version}_win32.zip"
        if not os.path.exists(file):
            url = f"https://registry.npmmirror.com/-/binary/chromedriver/{dest_version}/chromedriver_win32.zip"
            print("驅(qū)動(dòng)下載地址:", url)
            res = requests.get(url)
            with open(file, 'wb') as f:
                f.write(res.content)
        else:
            print(file, "文件已經(jīng)下載到當(dāng)前目錄,下面直接使用緩存解壓覆蓋...")
        with zipfile.ZipFile(file) as zf:
            zf.extract("chromedriver.exe", ".")
        driver = webdriver.Chrome(options=options)
        return driver


options = webdriver.ChromeOptions()
options.add_experimental_option(
    'excludeSwitches', ['enable-logging', 'enable-automation'])
driver = getChromeDriver(options)
driver.get("https://www.baidu.com/")

驅(qū)動(dòng)不兼容時(shí)的打印示例:

驅(qū)動(dòng)版本:100,谷歌游覽器版本:102.0.5005.115,不兼容
開始更新驅(qū)動(dòng)...
驅(qū)動(dòng)將更新到 102.0.5005.61
驅(qū)動(dòng)下載地址: https://registry.npmmirror.com/-/binary/chromedriver/102.0.5005.61/chromedriver_win32.zip

上面自己開發(fā)的下載方法下載速度相對(duì)是比較快的,如果嫌棄代碼太長(zhǎng),可以使用webdriver_manager這個(gè)庫(kù),通過pip可以直接安裝:

pip install webdriver_manager

然后執(zhí)行以下代碼即可從 https://chromedriver.storage.googleapis.com自動(dòng)下載匹配的驅(qū)動(dòng),并返回下載位置:

from webdriver_manager.chrome import ChromeDriverManager

ChromeDriverManager().install()

打印示例:

[WDM] - ====== WebDriver manager ======
[WDM] - Current google-chrome version is 102.0.5005
[WDM] - Get LATEST chromedriver version for 102.0.5005 google-chrome
[WDM] - There is no [win32] chromedriver for browser 102.0.5005 in cache
[WDM] - About to download new driver from https://chromedriver.storage.googleapis.com/102.0.5005.61/chromedriver_win32.zip
[WDM] - Driver has been saved in cache [C:\Users\ASUS\.wdm\drivers\chromedriver\win32\102.0.5005.61]
'C:\\Users\\ASUS\\.wdm\\drivers\\chromedriver\\win32\\102.0.5005.61\\chromedriver.exe'

這樣我們可以直接通過返回的字符串設(shè)置驅(qū)動(dòng)的位置:文章來源地址http://www.zghlxwxcb.cn/news/detail-699114.html

from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install(), options=None)

到了這里,關(guān)于自動(dòng)更新Selenium驅(qū)動(dòng)chromedriver的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python + selenium 自動(dòng)下載瀏覽器驅(qū)動(dòng)文件

    python + selenium 自動(dòng)下載瀏覽器驅(qū)動(dòng)文件

    2024年02月02日
    瀏覽(32)
  • Python Selenium實(shí)現(xiàn)自動(dòng)化測(cè)試及Chrome驅(qū)動(dòng)使用

    Python Selenium實(shí)現(xiàn)自動(dòng)化測(cè)試及Chrome驅(qū)動(dòng)使用

    本文將介紹如何使用 Python ? Selenium 庫(kù)實(shí)現(xiàn) 自動(dòng)化測(cè)試 ,并詳細(xì) 記錄 了Chrome驅(qū)動(dòng)的使用方法。 通過本文的指導(dǎo),讀者將能夠快速上手使用Python Selenium進(jìn)行自動(dòng)化測(cè)試。 并了解如何配置和使用Chrome驅(qū)動(dòng)來實(shí)現(xiàn)更高效的自動(dòng)化測(cè)試。 一、Python Selenium簡(jiǎn)介 Python Selenium是一個(gè)用于

    2024年02月03日
    瀏覽(28)
  • Python Selenium實(shí)現(xiàn)自動(dòng)化測(cè)試及Chrome驅(qū)動(dòng)使用!

    Python Selenium實(shí)現(xiàn)自動(dòng)化測(cè)試及Chrome驅(qū)動(dòng)使用!

    本文將介紹如何使用Python Selenium庫(kù)實(shí)現(xiàn)自動(dòng)化測(cè)試,并詳細(xì)記錄了Chrome驅(qū)動(dòng)的使用方法。 通過本文的指導(dǎo),讀者將能夠快速上手使用Python Selenium進(jìn)行自動(dòng)化測(cè)試。 并了解如何配置和使用Chrome驅(qū)動(dòng)來實(shí)現(xiàn)更高效的自動(dòng)化測(cè)試。 一、Python Selenium簡(jiǎn)介 Python Selenium是一個(gè)用于Web應(yīng)用

    2024年03月10日
    瀏覽(29)
  • python爬蟲,selenium+chromedriver,谷歌驅(qū)動(dòng)自動(dòng)下載及配置

    關(guān)于toollib 我們?cè)谑褂胹elenium時(shí),有一件讓我們狠抓狂的事,那就是驅(qū)動(dòng)的下載與配置… 為什么這么說呢? 1)首先確定瀏覽器對(duì)應(yīng)的驅(qū)動(dòng)版本號(hào) 2)然后手動(dòng)下載下來 3)最后配置驅(qū)動(dòng)路徑或放在對(duì)應(yīng)的目錄下 使用toollib就很方便,這些都內(nèi)部處理好了。(pip install toollib) 示

    2024年02月16日
    瀏覽(28)
  • selenium 更新 chromedriver 驅(qū)動(dòng)

    selenium 更新 chromedriver 驅(qū)動(dòng)

    selenium 要想使用 chromedriver 驅(qū)動(dòng),必須版本要正確 在瀏覽器的導(dǎo)航欄中輸入 chrome://version 可以看到當(dāng)前瀏覽器版本為 98.0.4758.82 驅(qū)動(dòng)下載地址:http://chromedriver.storage.googleapis.com/index.html 找到對(duì)應(yīng)版本的文件夾進(jìn)入,點(diǎn)擊自己系統(tǒng)的進(jìn)行下載 其中包含了 linux 、 mac 、 windows 多版

    2024年02月11日
    瀏覽(36)
  • selenium 遇到更新chorme驅(qū)動(dòng)

    selenium 遇到更新chorme驅(qū)動(dòng)

    打開瀏覽器,在地址欄輸入chrome://version/便可以查看到谷歌當(dāng)前的版本號(hào) 谷歌瀏覽器驅(qū)動(dòng)的下載網(wǎng)址 ?http://chromedriver.storage.googleapis.com/index.html http://chromedriver.storage.googleapis.com/index.html selenium webdriver - Unable to download chrome driver for version 115 - Stack Overflow ? ?Chrome for Testing availabi

    2024年02月14日
    瀏覽(12)
  • python/selenium中msedgedriver版本自動(dòng)更新,解決“This version of MSEdgeDriver only supports MSEdge version 100“

    目錄 前言 一、如何識(shí)別Edge瀏覽器的版本? 二、自動(dòng)更新代碼 1.引入庫(kù) 2.構(gòu)造解壓文件函數(shù) 3.更新msedgedriver文件

    2024年02月03日
    瀏覽(111)
  • Selenium 自動(dòng)化 —— 使用WebDriverManager自動(dòng)下載驅(qū)動(dòng)

    Selenium 自動(dòng)化 —— 使用WebDriverManager自動(dòng)下載驅(qū)動(dòng)

    上一篇文章 入門和 Hello World 實(shí)例 中,我們提供了一個(gè)最簡(jiǎn)單的 Selenium 上手的例子。 但是某一天,突然發(fā)現(xiàn)相同的代碼居然運(yùn)行報(bào)錯(cuò)了。這是怎么回事呢? 日志中其實(shí)提示的很明顯了:Chrome瀏覽器和Chrome WebDriver的版本不匹配。當(dāng)前WebDriver只支持Chrome瀏覽器版本114. 先檢查一

    2024年03月26日
    瀏覽(28)
  • selenium自動(dòng)化原理應(yīng)用 - 利用 requests 模擬 selenium 驅(qū)動(dòng)瀏覽器

    selenium自動(dòng)化原理應(yīng)用 - 利用 requests 模擬 selenium 驅(qū)動(dòng)瀏覽器

    selenium是一個(gè)web自動(dòng)化測(cè)試的開源框架,它支持多語言:python/java/c#… 前面也有一篇文章說明了,selenium+瀏覽器的環(huán)境搭建。 selenium支持多語言,是因?yàn)閟elenium與瀏覽器驅(qū)動(dòng)之間是通過http協(xié)議進(jìn)行通信的。只關(guān)心通信的數(shù)據(jù)是否能夠正確解讀 ,并不關(guān)心這個(gè)數(shù)據(jù)是從哪個(gè)客戶

    2024年02月03日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包