问题从opentdb请求时,出现以下错误:
Traceback (most recent call last): File "trivia.py", line 3, in <module> print(requests.get('https://opentdb.com/api.php?amount=1')) File "/Users/edl/Library/Python/3.4/lib/python/site-packages/requests/api.py", line 72, in get return request('get', url, params=params, **kwargs) File "/Users/edl/Library/Python/3.4/lib/python/site-packages/requests/api.py", line 58, in request return session.request(method=method, url=url, **kwargs) File "/Users/edl/Library/Python/3.4/lib/python/site-packages/requests/sessions.py", line 508, in request resp = self.send(prep, **send_kwargs) File "/Users/edl/Library/Python/3.4/lib/python/site-packages/requests/sessions.py", line 618, in send r = adapter.send(request, **kwargs) File "/Users/edl/Library/Python/3.4/lib/python/site-packages/requests/adapters.py", line 506, in send raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='opentdb.com', port=443): Max retries exceeded with url: /api.php?amount=1 (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:600)'),))
我已经看过这个问题以及github上的问题页面,但是没有一个解决方案在起作用。从其他站点发出的请求在我的计算机上可以正常工作,因此我不确定出什么问题。
进一步的怪异但是,在js中运行此代码不会产生任何错误,因此我不确定出了什么问题requests。
function get(url) { return new Promise((resolve, reject) => { const req = new XMLHttpRequest(); req.open("GET", url); req.onload = () => req.status === 200 ? resolve(req.response) : reject(req.statusText); req.onerror = () => reject("Network Error"); req.send(); }); } get('https://opentdb.com/api.php?amount=1').then(console.log)
运行代码段展开摘要甚至更怪异在repl.it中运行相同的代码时,一切正常。是否由于我的计算机无法正常工作?我不确定为什么它可以通过repl.it而不是我自己的计算机工作。
最小,完整和可验证的示例:
import requests print(requests.get('https://opentdb.com/api.php?amount=1'))
更多信息:使用 python 3.4.4
有关的信息requests:
Name: requests Version: 2.18.4 Summary: Python HTTP for Humans. Home-page: http://python-requests.org Author: Kenneth Reitz Author-email: me@kennethreitz.org License: Apache 2.0 Location: /Users/edl/Library/Python/3.4/lib/python/site-packages Requires: urllib3, certifi, idna, chardet