如何用Python Requests库爬取.aspx网站?SSL验证失败求助
解决Requests访问https://www.petplanet.co.uk的SSL证书验证失败问题
针对你遇到的SSL证书验证失败问题——即使添加verify=False也无效,以下是几个可行的解决方案:
1. 利用certifi库更新CA证书
本地CA证书库过期或不完整是这类问题的常见原因,certifi提供了Mozilla维护的最新CA证书集合:
首先安装certifi:
pip install certifi
然后在代码中指定使用certifi的证书路径:
import requests import certifi url = "https://www.petplanet.co.uk" response = requests.get(url, verify=certifi.where()) print(response.text)
2. 手动导入网站完整证书链
如果网站的证书链不完整(比如缺少中间证书),可以手动导出完整证书链并指定验证:
- 用浏览器打开目标网站,点击地址栏的锁图标,查看证书详情
- 导出完整证书链(包括根证书和中间证书),保存为
.pem格式文件(比如petplanet_certs.pem) - 在代码中指定该证书文件:
import requests url = "https://www.petplanet.co.uk" response = requests.get(url, verify="./petplanet_certs.pem") print(response.text)
3. 排查代理干扰
如果你的网络使用了代理(包括VPN),代理可能会替换网站证书导致验证失败:
- 暂时关闭代理/VPN后重试请求
- 如果必须使用代理,需将代理的CA证书添加到本地信任库或在
verify参数中指定代理证书路径
关于verify=False无效的说明
若添加verify=False仍报错,大概率是请求过程中发生了重定向,重定向后的请求未继承verify=False参数。可以尝试关闭重定向排查:
import requests url = "https://www.petplanet.co.uk" response = requests.get(url, verify=False, allow_redirects=False) print(response.text)
但这种方法存在安全风险,仅用于排查,不建议正式使用。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

