小编Pra*_*tik的帖子

如何修复 websocket-client Python 模块中的 CERTIFICATE_VERIFY_FAILED 错误?

代码:

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 …

python ssl client websocket

7
推荐指数
3
解决办法
2万
查看次数

标签 统计

client ×1

python ×1

ssl ×1

websocket ×1