如何利用加密货币行情接口查询比特币实时价格

python 复制代码
import time
import requests  # pip3 install requests
import json

# Extra headers
test_headers = {
    'Content-Type': 'application/json'
}

'''
github:https://github.com/alltick/realtime-forex-crypto-stock-tick-finance-websocket-api
申请免费token:https://alltick.co/register
官网:https://alltick.co

将如下JSON进行url的encode,复制到http的查询字符串的query字段里
{"trace" : "python_http_test1","data" : {"code" : "BTCUSD","kline_type" : 1,"kline_timestamp_end" : 0,"query_kline_num" : 1,"adjust_type": 0}}
'''

# Modify the URL to request BTCUSD (Bitcoin to USD) real-time price
test_url = 'https://quote.aatest.online/quote-b-api/kline?token=3662a972-1a5d-4bb1-88b4-66ca0c402a03-1688712831841&query=%7B%22trace%22%20%3A%20%22python_http_test1%22%2C%22data%22%20%3A%20%7B%22code%22%20%3A%20%22BTCUSD%22%2C%22kline_type%22%20%3A%201%2C%22kline_timestamp_end%22%20%3A%200%2C%22query_kline_num%22%20%3A%201%2C%22adjust_type%22%3A%200%7D%7D'

resp = requests.get(url=test_url, headers=test_headers)

# Decoded text returned by the request
text = resp.text
print(text)

也可以使用Websocket订阅BTC的实时报价:

python 复制代码
import json
import websocket  # pip install websocket-client

'''
# Special Note:
# GitHub: https://github.com/alltick/realtime-forex-crypto-stock-tick-finance-websocket-api
# Token Application: https://alltick.co
# Replace "testtoken" in the URL below with your own token
# API addresses for forex, cryptocurrencies, and precious metals:
# wss://quote.tradeswitcher.com/quote-b-ws-api
# Stock API address:
# wss://quote.tradeswitcher.com/quote-stock-b-ws-api
'''

class Feed(object):

    def __init__(self):
        # WebSocket URL for forex, cryptocurrencies, and precious metals (use your token)
        self.url = 'wss://quote.tradeswitcher.com/quote-b-ws-api?token=testtoken'  
        self.ws = None

    def on_open(self, ws):
        """
        Callback object which is called at opening websocket.
        1 argument:
        @ ws: the WebSocketApp object
        """
        print('A new WebSocketApp is opened!')

        # Start subscribing to BTCUSD (Bitcoin to USD)
        sub_param = {
            "cmd_id": 22002,
            "seq_id": 123,
            "trace": "3baaa938-f92c-4a74-a228-fd49d5e2f8bc-1678419657806",
            "data": {
                "symbol_list": [
                    {
                        "code": "BTCUSD",  # Subscribe to BTCUSD (Bitcoin to USD)
                        "depth_level": 5,
                    }
                ]
            }
        }

        # Send the subscription message
        sub_str = json.dumps(sub_param)
        ws.send(sub_str)
        print("BTCUSD (Bitcoin to USD) depth quote subscribed!")

    def on_data(self, ws, string, type, continue_flag):
        """
        4 arguments.
        The 1st argument is this class object.
        The 2nd argument is utf-8 string which we get from the server.
        The 3rd argument is data type. ABNF.OPCODE_TEXT or ABNF.OPCODE_BINARY will be came.
        The 4th argument is continue flag. If 0, the data continue
        """
 
    def on_message(self, ws, message):
        """
        Callback object which is called when received data.
        2 arguments:
        @ ws: the WebSocketApp object
        @ message: utf-8 data received from the server
        """
        # Parse the received message
        result = eval(message)
        print(result)

    def on_error(self, ws, error):
        """
        Callback object which is called when got an error.
        2 arguments:
        @ ws: the WebSocketApp object
        @ error: exception object
        """
        print(error)

    def on_close(self, ws, close_status_code, close_msg):
        """
        Callback object which is called when the connection is closed.
        2 arguments:
        @ ws: the WebSocketApp object
        @ close_status_code
        @ close_msg
        """
        print('The connection is closed!')

    def start(self):
        self.ws = websocket.WebSocketApp(
            self.url,
            on_open=self.on_open,
            on_message=self.on_message,
            on_data=self.on_data,
            on_error=self.on_error,
            on_close=self.on_close,
        )
        self.ws.run_forever()


if __name__ == "__main__":
    feed = Feed()
    feed.start()
相关推荐
历程里程碑3 分钟前
哈希3 : 最长连续序列
java·数据结构·c++·python·算法·leetcode·tornado
火云洞红孩儿9 分钟前
2026年,用PyMe可视化编程重塑Python学习
开发语言·python·学习
2401_8414956411 分钟前
【LeetCode刷题】两两交换链表中的节点
数据结构·python·算法·leetcode·链表·指针·迭代法
幻云201011 分钟前
Next.js 之道:从入门到精通
前端·javascript·vue.js·人工智能·python
SunnyDays101115 分钟前
使用 Python 自动查找并高亮 Word 文档中的文本
经验分享·python·高亮word文字·查找word文档中的文字
深蓝电商API20 分钟前
Selenium处理弹窗、警报和验证码识别
爬虫·python·selenium
深蓝电商API24 分钟前
Selenium模拟滚动加载无限下拉页面
爬虫·python·selenium
小王子102429 分钟前
Redis Queue 安装与使用
redis·python·任务队列·rq·redis queue
人工智能AI技术31 分钟前
【Agent从入门到实践】26 使用Chroma搭建本地向量库,实现Agent的短期记忆
人工智能·python
赤狐先生32 分钟前
第三步--根据python基础语法完成一个简单的深度学习模拟
开发语言·python·深度学习