Python调用SerpAPI首次运行正常,二次运行报SSL证书验证失败错误
解决SerpAPI二次运行时的SSL证书验证失败问题
针对你遇到的首次运行正常、二次运行触发SSLCertVerificationError的问题,可尝试以下几种解决方案:
1. 临时禁用SSL验证(仅测试环境使用)
修改代码,关闭SerpAPI底层请求的SSL证书验证:
from serpapi import GoogleSearch params = { "api_key": "SecretApiKey", "device": "desktop", "engine": "home_depot", "q": "chair" } search = GoogleSearch(params) # 关闭SSL验证 search.session.verify = False results = search.get_dict() print(results)
注意:此方法会降低安全性,禁止在生产环境使用。
2. 更新本地根证书
多数情况下,错误源于系统根证书缺失或过期:
- Windows:打开「Internet选项」→「内容」→「证书」,导入或更新权威根证书
- macOS:运行Python安装目录下的
Install Certificates.command(如/Applications/Python 3.11/Install Certificates.command),或通过「钥匙串访问」更新根证书 - Linux:重新安装CA证书包,以Ubuntu为例:
sudo apt-get install --reinstall ca-certificates
3. 指定自定义CA证书路径
若你有合法的CA证书文件,可直接指定路径:
from serpapi import GoogleSearch params = { "api_key": "SecretApiKey", "device": "desktop", "engine": "home_depot", "q": "chair" } search = GoogleSearch(params) # 替换为你的CA证书文件实际路径 search.session.verify = "/usr/local/share/ca-certificates/your-cert.pem" results = search.get_dict() print(results)
4. 重置请求Session
避免复用首次请求的连接池,每次请求创建新的Session:
from serpapi import GoogleSearch import requests params = { "api_key": "SecretApiKey", "device": "desktop", "engine": "home_depot", "q": "chair" } search = GoogleSearch(params) # 重置为新的Session search.session = requests.Session() results = search.get_dict() print(results)
内容的提问来源于stack exchange,提问作者iced
相关产品推荐
相关产品推荐

