美文网首页
python 使用Selenium WebDriver调用chr

python 使用Selenium WebDriver调用chr

作者: 生命不止运动不息 | 来源:发表于2024-05-31 21:50 被阅读0次

    undetected_chromedriver 调用突然报错了(Selenium WebDriver同理)

    调用代码

    import undetected_chromedriver as uc
    
    d = uc.Chrome(options=chrome_options)
    

    错误原因

    我国特色,被墙了。
    具体如下:
    每次通过Selenium WebDriver调用谷歌浏览器时,谷歌会去访问地址
    https://googlechromelabs.github.io
    来查找谷歌浏览器对应的驱动(webdriver)

    终极解决方法

    注意看以下错误。意思是:在requests.py的215行代码打开url时,报错了


    url错误
    因此,我们打开requests.py文件(错误中有requests.py的路径),找到215行,在该行之前打印以下url的值。我们看下它访问的url是什么。然后手动把文件给他下载来。
    requests.py

    可以看到打印的两个url


    打印结果
    打印的url
    wkun add
    https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json
    wkun add
    https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.141/mac-x64/chromedriver-mac-x64.zip
    
    手动下载文件后,主动指定驱动路径(Selenium WebDriver同理)
    d = uc.Chrome(options=chrome_options, driver_executable_path=driverpath)
    
    手动下载的chromedrive

    具体错误如下

    Traceback (most recent call last):
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 1344, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1336, in request
    self._send_request(method, url, body, headers, encode_chunked)
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1382, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1331, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1091, in _send_output
    self.send(msg)
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1035, in send
    self.connect()
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/http/client.py", line 1477, in connect
    self.sock = self._context.wrap_socket(self.sock,
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/ssl.py", line 455, in wrap_socket
    return self.sslsocket_class._create(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/ssl.py", line 1042, in _create
    self.do_handshake()
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/ssl.py", line 1320, in do_handshake
    self._sslobj.do_handshake()
    ConnectionResetError: [Errno 54] Connection reset by peer

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "/Users/wkun/Documents/Projects/Bill/GiteePython/music_automedia/py/test.py", line 5, in <module>
    haokan_down.openBrowser()
    File "/Users/wkun/Documents/Projects/Bill/GiteePython/music_automedia/py/download/haokan_down.py", line 30, in openBrowser
    d = uc.Chrome(options=chrome_options)#, driver_executable_path=driverpath)#, browser_executable_path=chromepath)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/lib/python3.12/site-packages/undetected_chromedriver/init.py", line 258, in init
    self.patcher.auto()
    File "/opt/homebrew/lib/python3.12/site-packages/undetected_chromedriver/patcher.py", line 178, in auto
    self.unzip_package(self.fetch_package())
    ^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/lib/python3.12/site-packages/undetected_chromedriver/patcher.py", line 287, in fetch_package
    return urlretrieve(download_url)[0]
    ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 240, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
    ^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 215, in urlopen
    return opener.open(url, data, timeout)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 515, in open
    response = self._open(req, data)
    ^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 532, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 492, in _call_chain
    result = func(*args)
    ^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 1392, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 1347, in do_open
    raise URLError(err)
    urllib.error.URLError: <urlopen error [Errno 54] Connection reset by peer>

    相关文章

      网友评论

          本文标题:python 使用Selenium WebDriver调用chr

          本文链接:https://www.haomeiwen.com/subject/blpdqjtx.html