【发布时间】:2018-03-05 13:29:39
【问题描述】:
代码:
import websocket
ws = websocket.WebSocket()
ws.connect('wss://stream2.binance.com:9443/ws/!miniTicker@arr@3000ms')
record = ws.recv()
print(record)
我试图从 Binance Websocket API 获取实时数据。在尝试使用此示例 url 获取数据时
wss://stream.binance.com:9443/ws/bnbbtc@depth
我收到此错误,提示 SSL 验证失败。
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)
追溯: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")
但随后发生了 NameError:
NameError: name 'ssl' is not defined
我试图添加一个导致 SyntaxError 的异常(这很荒谬但仍然......)。
其他范围
我尝试了使用 wss:// 但在第一个代码本身中运行良好的不同 websocket API。
wss://ws.blockchain.info/inv
{"op":"ping"}
条件:
我在 websockets.org 上尝试了 Echo 测试,并且 wss url 功能齐全。
任何帮助将不胜感激。还有其他专门用于 binance 的模块,但我想要原始数据,所以我正在使用这个 api。
感谢您阅读我的问题。
websocket-client 的 GitHub 网址:https://github.com/websocket-client/websocket-client
【问题讨论】:
-
当我尝试时,您的示例代码引发了一个不同的异常,
TypeError: __init__() takes exactly 4 arguments (1 given)用于WebSocket初始化程序。您使用的是什么版本的 websocket?你的例子真的适合你吗? -
我遇到了一个非常糟糕的错误pastebin.com/RiHn025Z 你会在最后一行代码中找到 SSL 错误。
-
如果您在问题中包含该回溯,stackoverflow 上的任何人都不会介意。事实上,它是首选。但是您没有回答有关您使用的是什么版本的 websocket 的问题。
-
我会记住这一点。错误很长,所以我只包括最后一部分。我正在使用 websocket-client 0.47.0
标签: python ssl websocket client