import requests import ssl ssl._create_default_https_context = ssl._create_unverified_context # 定义请求的URL url = 'https://7b4df3.ovbsefstsjhbe.sbs/book3.php?q=C009DD69&m=&f=_all&s=&p=1' # 定义请求头 headers = { 'Cookie': 'rz81px=nnqp6jomv3lvu', 'Accept-Encoding': 'gzip', 'User-Agent': 'okhttp/4.12.0', 'Connection': 'Keep-Alive', 'Content-Encoding': 'gzip' # 注意:通常不需要在请求头中设置Content-Encoding,除非服务器要求 } # 发送GET请求 response = requests.get(url, headers=headers) # 打印返回的状态码 print("Status Code:", response.status_code) # 打印返回的内容(自动解压gzip) print("Response Content:", response.text) 这个代码报错:G:\ANACONDA\python.exe D:\Python-master\Pyqt6\pythonProject\3.水平布局.py urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "G:\ANACONDA\Lib\site-packages\requests\adapters.py", line 589, in send resp = conn.urlopen( ^^^^^^^^^^^^^ File "G:\ANACONDA\Lib\site-packages\urllib3\connectionpool.py", line 843, in urlopen retries = retries.increment( ^^^^^^^^^^^^^^^^^^ File "G:\ANACONDA\Lib\site-packages\urllib3\util\retry.py", line 519, in increment raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='7b4df3.ovbsefstsjhbe.sbs', port=443): Max retries exceeded with url: /book3.php?q=C009DD69&m=&f=_all&s=&p=1 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)'))) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "D:\Python-master\Pyqt6\pythonProject\3.水平布局.py", line 18, in <module> response = requests.get(url, headers=headers) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\ANACONDA\Lib\site-packages\requests\api.py", line 73, in get return request("get", url, params=params, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\ANACONDA\Lib\site-packages\requests\api.py", line 59, in request return session.request(method=method, url=url, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\ANACONDA\Lib\site-packages\requests\sessions.py", line 589, in request resp = self.send(prep, **send_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\ANACONDA\Lib\site-packages\requests\sessions.py", line 703, in send r = adapter.send(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\ANACONDA\Lib\site-packages\requests\adapters.py", line 620, in send raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='7b4df3.ovbsefstsjhbe.sbs', port=443): Max retries exceeded with url: /book3.php?q=C009DD69&m=&f=_all&s=&p=1 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)'))) 进程已结束,退出代码为 1
时间: 2025-07-05 11:13:15 浏览: 3
在使用 Python 的 `requests` 库访问 HTTPS 网站时,可能会遇到 SSL 证书验证失败的问题(例如出现错误消息:`SSL: CERTIFICATE_VERIFY_FAILED`)。这类问题通常出现在目标网站使用了自签名证书或系统缺少根证书的情况下 [^2]。
### 解决方案
#### 1. 显式指定 CA 证书路径
可以使用 `verify` 参数指向一个包含受信任的 CA 证书的文件(通常是 PEM 文件),以覆盖默认的证书验证行为。适用于具有私有证书颁发机构(CA)的企业环境或测试环境中:
```python
import requests
response = requests.get('https://example.com', verify='/path/to/certfile.pem')
print(response.status_code)
```
确保提供正确的证书路径,并且该路径下的 PEM 文件包含了所需的证书链 [^1]。
#### 2. 禁用 SSL 验证(不推荐用于生产环境)
如果只是为了临时解决问题,可以将 `verify` 参数设置为 `False` 来禁用 SSL 证书验证:
```python
import requests
response = requests.get('https://example.com', verify=False)
print(response.status_code)
```
需要注意的是,这种方式会跳过 SSL 证书验证,可能导致中间人攻击的风险增加,因此不应在生产环境中使用 [^4]。
#### 3. 安装缺失的根证书
某些情况下,操作系统或 Python 运行时可能缺少必要的根证书。可以通过更新操作系统、安装最新的 Python 版本或者手动下载并添加根证书来解决此类问题。对于 macOS 用户来说,Python 2.7.9+ 引入了新的 SSL 验证机制,可能需要手动修复证书存储 [^2]。
#### 4. 使用 HTTP 协议替代(仅限开发/测试)
如果 HTTPS 不是强制要求,可以尝试使用 HTTP 协议来绕过 SSL 错误。尽管这种方法可以快速解决问题,但其安全性较低,仅建议在非生产环境下使用 [^4]。
```python
import requests
response = requests.get('http://example.com') # 注意这里是 http 而不是 https
print(response.status_code)
```
#### 5. 使用安全工具扫描潜在漏洞
在进行调试和修复过程中,还可以利用一些高级调试命令对脚本进行内存分析、性能可视化以及安全扫描等操作,从而发现隐藏的安全隐患。例如:
- 内存分析:
```bash
deepseek profile --memory script.py
```
- 性能可视化:
```bash
deepseek visualize --heatmap performance.log
```
- 安全扫描:
```bash
deepseek audit --security script.py
```
这些工具能够帮助开发者识别与 SSL/TLS 相关的配置错误和其他潜在问题 [^5]。
---
阅读全文
相关推荐


















