You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python网页爬取遇SSLError:证书验证失败如何解决?

SSL证书验证失败问题分析与解决

问题现象

执行requests.get(url)爬取网页时触发以下SSLError:

SSLError: HTTPSConnectionPool(host='subslikescript.com', port=443): Max retries exceeded with url: /movie/Titanic-120338 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)')))

添加verify=False关闭证书验证后,请求能正常完成,但会弹出安全警告:

from bs4 import BeautifulSoup
import requests
url='https://subslikescript.com/movie/Titanic-120338'
result = requests.get(url, verify=False)  # 关闭证书验证

警告内容:

InsecureRequestWarning: Unverified HTTPS request is being made to host 'subslikescript.com'. Adding certificate verification is strongly advised

已尝试执行python -m pip install certifi更新证书,但问题未解决。

原因解释

  • HTTPS网站靠证书证明身份,你的电脑得有对应的「根证书」来确认网站证书合法。
  • 这个错误要么是目标网站的证书不被主流根证书机构信任,要么是你的Python环境没正确加载系统或certifi提供的根证书,导致没法验证网站证书的合法性。
  • 更新certifi没用,大概率是因为目标网站的证书不在certifi的信任列表里,或者Python没正确指向certifi的证书文件。

解决方法

方法1:手动指定信任证书(最安全)

如果能获取到目标网站的合法证书,下载后在请求里指定证书路径:

result = requests.get(url, verify="/path/to/your/certificate.pem")

提示:可以通过浏览器访问该网站,导出证书并保存为.pem格式文件

方法2:禁用安全警告(练习场景适用)

如果只是练习爬取,不想看到警告提示,可以在代码里关闭该警告:

from bs4 import BeautifulSoup
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

# 禁用不安全请求警告
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

url='https://subslikescript.com/movie/Titanic-120338'
result = requests.get(url, verify=False)

方法3:检查Python证书配置

如果是Python环境未正确加载certifi证书,可手动指定certifi的证书路径:

import certifi
import requests

url='https://subslikescript.com/movie/Titanic-120338'
result = requests.get(url, verify=certifi.where())

如果此方法仍无效,说明目标网站证书本身不被信任,只能选用方法2。

内容的提问来源于stack exchange,提问作者zachi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 21:40:08