Seleniumwire无法加载网页报AttributeError: SSL_CTX_get0_param错误
问题原因
核心触发原因是pyOpenSSL版本与Seleniumwire 4.4.0内置的mitmproxy组件版本不兼容:
Seleniumwire 4.4.0内置的旧版mitmproxy依赖低版本pyOpenSSL提供的SSL_CTX_get0_param接口,若你近期将pyOpenSSL升级到22.0.0及以上版本,该版本已移除这个旧接口,就会触发本次的AttributeError报错,进而导致代理服务无返回、浏览器抛出ERR_EMPTY_RESPONSE错误。
解决方案
你可以根据自己的业务场景选择以下任意一种方案解决:
- 方案1:降级pyOpenSSL到兼容版本
该方案无需修改原有代码,适配速度最快,直接执行安装命令即可:
安装完成后重新运行程序即可正常使用。pip install pyOpenSSL==21.0.0 - 方案2:升级Seleniumwire到最新稳定版
新版Seleniumwire已经更新了内置的mitmproxy组件,完全适配高版本pyOpenSSL的接口规范,执行升级命令即可:
若升级过程中出现依赖冲突,可添加pip install --upgrade seleniumwire--force-reinstall参数强制更新关联依赖。 - 方案3:隔离运行环境
如果你有其他业务必须使用高版本pyOpenSSL无法降级,可以创建独立的Python虚拟环境,在虚拟环境中单独安装适配Seleniumwire的依赖版本,避免全局包版本冲突。
内容的提问来源于stack exchange,提问作者GreyndBlue
相关产品推荐
相关产品推荐

