首页 > 编程语言 >Python实现http接口请求数据后,往RabbitMQ里面插入数据

Python实现http接口请求数据后,往RabbitMQ里面插入数据

时间:2024-03-14 15:23:18浏览次数:19  
标签:http Python instId RabbitMQ USDT url SWAP timestamp bar

python实现http接口请求数据服务后,往RABBITmq里面插入数据

import time
import requests
import pika
import datetime
base_url = 'https://www.okx.com'
api_url = '/api/v5/market/history-mark-price-candles'
# 时间颗粒度 [1m/3m/5m/15m/30m/1H/2H/4H]
time_unit = ['1m', '3m', '5m', '15m', '30m', '1h', '2h', '4h']
# 币种list
instId_list = ['ADA-USDT-SWAP', 'ANT-USDT-SWAP', 'ATOM-USDT-SWAP', 'BAT-USDT-SWAP', 'BCH-USDT-SWAP', 'BTC-USDT-SWAP', 'CFX-USDT-SWAP', 'DOGE-USDT-SWAP', 'ENS-USDT-SWAP', 'EOS-USDT-SWAP', 'ETC-USDT-SWAP', 'ETH-USDT-SWAP', 'GFT-USDT-SWAP', 'LTC-USDT-SWAP', 'ORDI-USDT-SWAP', 'STORJ-USDT-SWAP', 'TRX-USDT-SWAP', 'WLD-USDT-SWAP', 'XLM-USDT-SWAP', 'XRP-USDT-SWAP', 'YGG-USDT-SWAP']
# 循环时间颗粒度查询
for bar in time_unit:
    # 循环币种
    for line in instId_list:
        # 开始时间
        start_date = '2024-01-01 00:00:00'
        end_date = '2023-01-01 00:00:00'
        start_timestamp = datetime.datetime.strptime(start_date, '%Y-%m-%d %H:%M:%S').timestamp()
        end_timestamp = datetime.datetime.strptime(end_date, '%Y-%m-%d %H:%M:%S').timestamp()
        start_timestamp = int(start_timestamp * 1000)
        end_timestamp = int(end_timestamp * 1000)
        # 参数url
        instId = line
        after = start_timestamp
        bar = bar
        args_url = '?instId={}&after={}&bar={}'.format(instId, after, bar)
        url = base_url + api_url + args_url

        while after > end_timestamp:
            try:
                response = requests.get(url)
                result = response.json()
                if result['code'] == '0' and result['data']:
                    result.update({'instId': instId, 'bar': bar})
                    # 将result 写入到rabbitmq 实现逻辑
                    # RabbitMQ连接信息
                    serverURL = "amqp://mel:[email protected]:5672/okx_vhost"
                    exchangeName = "okx_all_exchange"
                    queueName = "okx_all_queue"
                    # 建立RabbitMQ连接
                    connection = pika.BlockingConnection(pika.URLParameters(serverURL))
                    channel = connection.channel()
                    # 声明exchange和queue
                    channel.exchange_declare(exchange=exchangeName, exchange_type='fanout', durable=True)
                    channel.queue_declare(queue=queueName, durable=True)
                    # 将数据写入RabbitMQ
                    channel.basic_publish(exchange=exchangeName, routing_key=queueName, body=str(result))
                    # 关闭连接
                    connection.close()
                    # 具体实现逻辑
                    after = result['data'][-1][0]
                    after = int(after)
                    str_date = datetime.datetime.fromtimestamp(after / 1000).strftime('%Y-%m-%d %H:%M:%S')
                    print('===bar===', bar)
                    print('===instId===', instId)
                    print('===str_date===', str_date)
                    # time.sleep(1)
                    # 更新参数url
                    args_url = '?instId={}&after={}&bar={}'.format(instId, after, bar)
                    url = base_url + api_url + args_url
                else:
                    break
            except requests.exceptions.ProxyError:
                print("ProxyError occurred. Retrying...")
                time.sleep(1)  # 延迟1秒后重试
                continue

 

 

 

标签:http,Python,instId,RabbitMQ,USDT,url,SWAP,timestamp,bar
From: https://www.cnblogs.com/1314520xh/p/18072915

相关文章

  • 完美解决浏览器输入http被自动跳转至https问题
    查阅相关资料,发现这是浏览器的HSTS(HTTPStrictTransportSecurity)功能引起的。在安装配置SSL证书时,可以使用一种能使数据传输更加安全的Web安全协议,即在服务器端上开启HSTS,它会告诉浏览器只能通过HTTPS访问,而绝对禁止HTTP方式。因此,只要关闭浏览器的HSTS功能就可以解决这个问题......
  • python string模块
    介绍ascii_letters--所有字母的字符串ascii_lowercase--小写字母的字符串ascii_uppercase--大写字母的字符串digits--十进制数字的字符串hexdigits--十六进制数字的字符串octdigits--八进制数字的字符串punctuation--标点符号的字符串printable--所有可打印的ASCII码字符......
  • 第四章 python的标准库
    第四章python的标准库一、`os`1.1基本功能1.2文件和目录操作1.2.1目录操作1.2.2文件操作1.3路径操作1.4环境变量1.4.1`os.environ`1.4.2`os.pathsep`1.4.3`os.name`1.4.4`os.system()`1.4.5`os.putenv(key,value)`和`os.unsetenv(key)`1.5进程管理1.5......
  • 前端提交数据后http状态码400
    报错如下:分析原因:前端Cookie使用过多,储存数据过大 解决方案:方案一:Nginx配置文件nginx.conf中把请求头内存调大client_header_buffer_size32k;large_client_header_buffers432k;方案二:前端删除部分Cookie,用H5中的本地储存localStorage代替<!DOCTYPEhtml><html>......
  • python基于flask共享单车管理系统 234if
    快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择利用互联网进行线上打理各种事务,然后线上管理系统也就相继涌现。与此同时,人们开始接受方便的生活方式。他们不仅希望页面简单大方,还希望操作方便,可以快速锁定他们需要......
  • 基于Django(python+sql)的校园二手交易系统设计与实现(完整程序+开题报告+论文)
    摘要        随着互联网的迅猛发展,校园内的二手交易市场也逐渐呈现出蓬勃的发展态势。学生们在校园生活中会产生大量的闲置物品,而其他学生也有可能需要这些物品。本论文研究了校园二手交易系统的需求分析、系统实现和测试三个部分,旨在提高校园二手交易系统的开发和测......
  • 配置 HTTP/HTTPS 网络代理
    使用Docker的过程中,因为网络原因,通常需要使用HTTP/HTTPS代理来加速镜像拉取、构建和使用。下面是常见的三种场景。 为dockerd设置网络代理"dockerpull"命令是由dockerd守护进程执行。而dockerd守护进程是由systemd管理。因此,如果需要在执行"dockerpull"命令时......
  • Python 向函数传递参数(小结)
    目录1、位置实参2、关键字实参3、形参默认值4、将队列的副本传入函数5、传递任意数量的实参6、传递任意数量的关键字实参1、位置实参调用函数时,传递参数的顺序与函数定义中的参数顺序一致。defperson(name,age):passperson('Marry',34)2、关键字实参调用......
  • Python 文件操作(小结)
    目录1打开文件1.1文件路径1.2打开‘中文’文件1.3 with打开1.3打开模式1.4打开异常2读取文件2.1一次性读取全部,read()2.2遍历文件,每次读取一行2.3with外使用文件内容3写文件1打开文件1.1文件路径程序文件所在路径为“当前路径”。(1)如果文件位于“......
  • python教程(中更新中)
    递归函数在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。举个例子,我们来计算阶乘n!=1x2x3x...xn,用函数fact(n)表示,可以看出:����(�)=�!=1×2×3×⋅⋅⋅×(�−1)×�=(�−1)!×�=����(�−1)×�fact(n)=n!=1×2×3×⋅⋅⋅×(n−1)×n=(n−1)!×n......