代码:
import websocket
ws = websocket.WebSocket()
ws.connect('wss://stream2.binance.com:9443/ws/!miniTicker@arr@3000ms')
record = ws.recv()
print(record)
Run Code Online (Sandbox Code Playgroud)
我试图从 Binance Websocket API 获取实时数据。尝试使用此示例 url 获取数据时
wss://stream.binance.com:9443/ws/bnbbtc@depth
Run Code Online (Sandbox Code Playgroud)
我收到此错误,表示 SSL 验证失败。
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)
Run Code Online (Sandbox Code Playgroud)
追溯:pastebin.com/RiHn025Z
我已经尝试过的:
所以我在SO How to create Python secure websocket client request?上发现了这个问题 并按照此代码的步骤进行操作
ws = websocket.WebSocket(sslopt={"cert_reqs": ssl.CERT_NONE})
ws.connect("wss://stream2.binance.com:9443/ws/!miniTicker@arr@3000ms")
Run Code Online (Sandbox Code Playgroud)
但随后发生了NameError:
NameError: name 'ssl' is not defined
Run Code Online (Sandbox Code Playgroud)
我尝试添加一个异常(这很荒谬,但仍然......),这导致了语法错误。
其他范围
我尝试使用不同的 websocket API,它使用 wss:// 但在第一个代码本身中工作得很好。
wss://ws.blockchain.info/inv
{"op":"ping"}
Run Code Online (Sandbox Code Playgroud)
状况:
我在 websockets.org 上尝试了 Echo 测试,wss url 功能齐全。
任何帮助将不胜感激。还有其他专门用于 binance 的模块,但我想要原始数据,所以我使用这个 api。
感谢您阅读我的问题。
websocket-client 的 GitHub URL:https …