运行undetected-chromedriver出现SSL证书验证失败报错如何解决
错误产生原因
该错误触发在undetected-chromedriver自动拉取匹配版本的chromedriver二进制文件的环节,urllib请求官方下载服务时SSL证书校验失败,常见触发原因如下:
- MacOS系统下Python 3.6及以上版本默认未预装系统根证书,是该问题最高发的诱因
- 当前网络存在代理、防火墙、企业内网网关的SSL劫持,请求拿到的证书非官方颁发的合法证书,无法通过校验
- 本地安装的undetected-chromedriver版本过旧,内置的证书校验逻辑存在兼容缺陷
修复方案
方案1:安装Python根证书(适配MacOS设备)
直接运行Python安装目录内置的证书安装脚本即可,将命令中的3.x替换为你本地的Python版本号:/Applications/Python\ 3.x/Install\ Certificates.command
方案2:配置undetected-chromedriver跳过SSL校验
初始化时添加忽略证书错误的参数,同时指定本地Chrome的主版本号,减少不必要的版本查询请求:
import undetected_chromedriver as uc options = uc.ChromeOptions() options.add_argument('--ignore-certificate-errors') # 版本号填本地Chrome的大版本,例如Chrome 118就填118 driver = uc.Chrome( options=options, version_main=118, ssl_verify=False )
方案3:手动指定本地chromedriver路径
自行下载和本地Chrome版本匹配的chromedriver到本地,初始化时直接指定路径,完全跳过自动下载逻辑,从根源避免urllib的SSL请求:
import undetected_chromedriver as uc driver = uc.Chrome( driver_executable_path="/你本地的chromedriver存放路径" )
方案4:更新undetected-chromedriver版本
旧版本的undetected-chromedriver存在证书校验兼容问题,直接升级到最新版即可:pip install --upgrade undetected-chromedriver
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

