使用官方示例脚本时Undetected Chromedriver仍无法运行
解决undetected_chromedriver启动时的SSL ASN1嵌套错误
错误核心原因
问题根源是Windows系统证书存储中存在损坏/格式错误的证书,导致Python的ssl模块加载默认HTTPS证书时触发[ASN1] nested asn1 error,进而让undetected_chromedriver无法通过HTTPS请求自动检测Chrome版本,最终启动失败。
可行解决方案
1. 跳过自动版本检测,手动指定Chrome版本
先查看本地Chrome的版本号(Chrome菜单→帮助→关于Google Chrome),然后在代码中直接指定版本,避免undetected_chromedriver发起HTTPS请求:
import undetected_chromedriver as uc # 替换为你实际的Chrome主版本号(比如125) driver = uc.Chrome(version_main=125) driver.get('https://nowsecure.nl')
2. 重建Windows证书信任列表
以管理员身份打开命令提示符,执行以下命令修复损坏的证书:
certutil -verifyctl rebuild
执行完成后重启电脑,再运行脚本。
3. 自定义SSL上下文(备选方案)
如果上述方法无效,可以手动指定可信证书文件,绕过系统默认证书加载:
- 下载标准根证书包(比如cacert.pem)
- 修改代码如下:
import ssl import undetected_chromedriver as uc # 创建自定义SSL上下文并加载指定证书 ssl_ctx = ssl.create_default_context() ssl_ctx.load_verify_locations("cacert.pem") # 替换为你的证书文件路径 # 替换undetected_chromedriver的默认urlopen方法,使用自定义上下文 uc.patcher.urlopen = lambda url: uc.urllib.request.urlopen(url, context=ssl_ctx) driver = uc.Chrome() driver.get('https://nowsecure.nl')
内容的提问来源于stack exchange,提问作者Maksa MM
相关产品推荐
相关产品推荐

