当向特定 URL 发送请求时,我收到 SSL 错误,但我不确定原因。首先请查看我收到的错误消息:
requests.exceptions.SSLError: HTTPSConnectionPool(host='dicmedia.korean.go.kr', port=443): 超过最大重试次数,网址为:/multimedia/naver/2016/40000/35000/14470_byeon-gyeong.wav(由以下原因引起) SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:997)')))
我已经尝试过:
verify="private/etc/ssl/certs"老实说,我不知道为什么会收到此错误。正如错误消息本身表明的那样,相关服务器似乎可以以某种方式获取我的本地证书。该脚本一直有效到一周前。在那之前我没有更新Python。现在我使用从官方网站下载的python 3.10.2。
我不想设置,verify=False因为这只是跳过验证过程,让我很容易受到攻击,因为许多人已经指出了不同的问题。除此之外,我无法解决该错误确实令我困扰。
任何帮助深表感谢。具体要求见:
import requests
def request(url):
response = requests.get(url, verify="/private/etc/ssl/certs")
print(response)
request("https://dicmedia.korean.go.kr/multimedia/naver/2016/40000/35000/14470_byeon-
gyeong.wav")
Run Code Online (Sandbox Code Playgroud) 为什么我们不能在这里使用[i]代替[i:i+1]?(第 10 行)。仅供参考:此代码是此处描述的问题的解决方案的一部分:https : //www.codewars.com/kata/57814d79a56c88e3e0000786/train/python
但它更像是一个普遍的问题!我只[i]在我的类似解决方案中使用过,但它给我带来了索引错误。
def decrypt(text, n):
if text in ("", None):
return text
ndx = len(text) // 2
for i in range(n):
a = text[:ndx]
b = text[ndx:]
text = "".join(b[i:i+1] + a[i:i+1] for i in range(ndx + 1))
return text
def encrypt(text, n):
for i in range(n):
text = text[1::2] + text[::2]
return text
Run Code Online (Sandbox Code Playgroud)