ged*_*133 12 python web-scraping python-requests
我正在尝试使用一个非常简单的 python 请求,requests.get但使用此代码收到以下错误:
url = 'https://www.tesco.com/'
status = requests.get(url)
Run Code Online (Sandbox Code Playgroud)
错误:
requests.exceptions.SSLError: HTTPSConnectionPool(host='www.tesco.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')))
Run Code Online (Sandbox Code Playgroud)
谁能向我解释如何解决这个问题,更重要的是这个错误意味着什么?
非常感谢
Dea*_*nen 17
这些错误是由无效或过期的SSL 证书引起的
当向服务器发出 GET 请求时,例如www.tesco.com您有 2 个选项,一个http和一个https,在 https 的情况下,服务器将为您的请求者(您的脚本)提供 SSL 证书,该证书允许您验证您是否正在连接到合法网站,这也有助于保护和加密脚本和服务器之间传输的数据
只需禁用 SSL 检查即可
url = 'https://www.tesco.com/'
requests.get(url, verify=False)
Run Code Online (Sandbox Code Playgroud)
使用会话并禁用 SSL 证书检查
import requests, os
url = 'https://www.tesco.com/'
# Use Session and Disable the SSL Cert Check
session = requests.Session()
session.verify = False
session.trust_env = False
session.get(url=url)
Run Code Online (Sandbox Code Playgroud)
确保日期和时间设置正确,因为请求库会检查 SSL 证书与您的本地日期和时间相比的有效日期范围。因为这有时是一个常见问题
您可能需要在您的计算机上安装最新更新的根 CA 证书在此处下载
不鼓励使用,verify=false因为它存在安全风险。这意味着您的浏览器或脚本无法验证从网站/网址收到的数据是否确实来自它们(您正在请求的网站)
| 归档时间: |
|
| 查看次数: |
35041 次 |
| 最近记录: |