<p>我在使用Poloniex和Python2.7时遇到了很多问题,但最终找到了一个解决方案,希望能对您有所帮助。在</p>
<p>我发现Poloniex已经取消了对原始WAMP套接字端点的支持,所以我可能会完全偏离这个方法。也许这就是你所需要的全部答案,但如果不是的话,这里有一个获取股票信息的替代方法。在</p>
<p>最终对我最有用的代码实际上是从您<a href="https://stackoverflow.com/questions/32154121/how-to-connect-to-poloniex-com-websocket-api-using-a-python-library">linked</a>到上面的文章,但是我在别处找到了一些关于货币对id的信息。在</p>
<pre><code>import websocket
import thread
import time
import json
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
print("ONOPEN")
def run(*args):
# ws.send(json.dumps({'command':'subscribe','channel':1001}))
ws.send(json.dumps({'command':'subscribe','channel':1002}))
# ws.send(json.dumps({'command':'subscribe','channel':1003}))
# ws.send(json.dumps({'command':'subscribe','channel':'BTC_XMR'}))
while True:
time.sleep(1)
ws.close()
print("thread terminating...")
thread.start_new_thread(run, ())
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("wss://api2.poloniex.com/",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
</code></pre>
<p>我注释掉了那些你似乎不想要的数据,但是这里有一些来自上一篇文章的更多信息作为参考:</p>
^{pr2}$
<p>现在您应该得到一些如下所示的数据:</p>
<pre><code>[121,"2759.99999999","2759.99999999","2758.00000000","0.02184376","12268375.01419869","4495.18724321",0,"2767.80020000","2680.10000000"]]
</code></pre>
<p>这也很烦人,因为开头的“121”是货币对id,这是没有文档记录的,在这里提到的另一个堆栈溢出问题中也没有答案。在</p>
<p>但是,如果您访问这个url:<a href="https://poloniex.com/public?command=returnTicker" rel="nofollow noreferrer">https://poloniex.com/public?command=returnTicker</a>,那么id似乎显示为第一个字段,因此您可以创建自己的id->;货币对映射,或者通过您希望从中获得的id解析数据。在</p>
<p>或者,简单到:</p>
<pre><code>import urllib
import urllib2
import json
ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/public?command=returnTicker'))
print json.loads(ret.read())
</code></pre>
<p>将返回给您所需的数据,但您必须将其放入循环中以获取不断更新的信息。收到数据后不确定你的需求,所以我将把剩下的留给你。在</p>
<p>希望这有帮助!在</p>