python采集数据的几种途径_详解

工程师小C的小店

Python编程三剑客:Python编程从入门到实践第2版+快速上手第2版+极客编程(套装共3册)

作者:[美] 埃里克·马瑟斯(Eric Matthes)

出版社:人民邮电出版社

好评:100.0%

销售量:6

¥149

更多

第一种, 使用create_connection链接,需要pip install websocket-client (此方法不建议使用,链接不稳定,容易断,并且连接很耗时)

import time

from websocket import create_connection

url = 'wss://i.cg.net/wi/ws'

while True: # 一直链接,直到连接上就退出循环

time.sleep(2)

try:

ws = create_connection(url)

print(ws)

break

except Exception as e:

print('连接异常:', e)

continue

while True: # 连接上,退出第一个循环之后,此循环用于一直获取数据

ws.send('{"event":"subscribe", "channel":"btc_usdt.ticker"}')

response = ws.recv()

print(response)

第二种,运行效果很不错,很容易连接,获取数据的速度也挺快

import json

from ws4py.client.threadedclient import WebSocketClient

class CG_Client(WebSocketClient):

def opened(self):

req = '{"event":"subscribe", "channel":"eth_usdt.deep"}'

self.send(req)

def closed(self, code, reason=None):

print("Closed down:", code, reason)

def received_message(self, resp):

resp = json.loads(str(resp))

data = resp['data']

if type(data) is dict:

ask = data['asks'][0]

print('Ask:', ask)

bid = data['bids'][0]

print('Bid:', bid)

if __name__ == '__main__':

ws = None

try:

ws = CG_Client('wss://i.cg.net/wi/ws')

ws.connect()

ws.run_forever()

except KeyboardInterrupt:

ws.close()

第三种,其实和第一种差不多,只不过换种写法而已,运行效果不理想,连接耗时,并且容易断

import websocket

while True:

ws = websocket.WebSocket()

try:

ws.connect("wss://i.cg.net/wi/ws")

print(ws)

break

except Exception as e:

print('异常:', e)

continue

print('OK')

while True:

req = '{"event":"subscribe", "channel":"btc_usdt.deep"}'

ws.send(req)

resp = ws.recv()

print(resp)

第四种,运行效果也可以,run_forever里面有许多参数,需要自己设置

import websocket

def on_message(ws, message): # 服务器有数据更新时,主动推送过来的数据

print(message)

def on_error(ws, error): # 程序报错时,就会触发on_error事件

print(error)

def on_close(ws):

print("Connection closed ……")

def on_open(ws): # 连接到服务器之后就会触发on_open事件,这里用于send数据

req = '{"event":"subscribe", "channel":"btc_usdt.deep"}'

print(req)

ws.send(req)

if __name__ == "__main__":

websocket.enableTrace(True)

ws = websocket.WebSocketApp("wss://i.cg.net/wi/ws",

on_message=on_message,

on_error=on_error,

on_close=on_close)

ws.on_open = on_open

ws.run_forever(ping_timeout=30)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关资源:websocket Server Python实现

————————————————

版权声明:本文为CSDN博主「十二月极光」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_42311427/article/details/112904984

(0)

相关推荐

  • WebSocket

    目录 一.WebSocket -网络通信协议 1-1 简介 二.Websockets servers and clients in Python 2-0 connect 2-0-1 建立一对一短连接 ...

  • python-greenlet模块(协程)

    python-greenlet模块(协程)

  • jumpserver最新RCE复现

    前言 今天复现了jumpserver的最新RCE,可能是年纪大了有点激动发出来有点急.不过塔王紧跟着就把文章整理好了不得不说很专业.想了想也包不住多久,就干脆发公众号出来好了.主要是学到了不少东西,前 ...

  • Python3+WebSockets实现WebSocket通信

    一.说明 1.1 背景说明 前段时间同事说云平台通信使用了个websocket的东西,今天抽空来看一下具体是怎么个通信过程. 从形式上看,websocket是一个应用层协议,socket是数据链路层. ...

  • 初识装饰器函数

    我之前看装饰器文章介绍,很少有用 装饰器函数这种称谓的.但是今天大邓简单的学了下装饰器,觉得应该先让大家知道装饰器是一种函数,让大家从熟悉的函数去学习装饰器.大邓姑且草率的将其称呼为 装饰器函数 装饰 ...

  • python中的other.a怎么理解?

    表白:黑白圣堂血天使,天剑鬼刀阿修罗.  讲解对象:/python中的other.a怎么理解? 作者:融水公子 rsgz Python3 教程 Python3 教程 http://www.rsgz.t ...

  • Excel多列数据查重复值,4种操作技巧详解,操作简单又实用

    Excel我们经常会做的一个数据处理动作,那就是数据重复值的复核,我们经常会需要对表格中单列或多列数据值,进行数据重复值的核对避免数据出错.今天我们就来学习Excel常见的几种简单实用的数据复核技巧. ...

  • 【同步讲练】七年级下册:二元一次方程组七种典型例题详解,一次解决应用问题!

    【同步讲练】七年级下册:二元一次方程组七种典型例题详解,一次解决应用问题!

  • 11种常见皮肤病用药方案及12种外用药详解

    来源:无忧开药店 11种常见皮肤病用药方案. 1.接触性皮炎 (一)发病前均有过敏物质或刺激物接触史,一般发病急,皮损发生在接触部位. (二)皮损的轻重与致敏物或刺激物质的强弱.作用时间的长短.接触面 ...

  • 静态图片显示两种效果,详解PS制作隐藏图的方法,看完太简单了

    在上篇文章中,我们分析了隐藏图在黑白背景下的隐藏原理,但是一般人很难用公式法来实现隐藏图的制作,本文介绍一种制作隐藏图方法--网格法,其隐藏原理与公式法有区别,显示效果逊色于公式法,但是大多数人都可以 ...

  • 只知道麻辣?川菜24种味型详解

    曾几何时,许多外省朋友听闻川菜便摇头,直言太过麻辣!殊不知,川菜24味型,麻辣仅其一味.在当下,全国各地川菜饭店或夜市排档,流行的多是多油.重油的江湖菜(确实很多年轻人钟爱),于是,又有很多外省朋友谈 ...

  • 香菇25种做法大全详解。

    香菇鸡粥 材料:鸡肉1块.鲜香菇2朵.大米100克.淀粉适量.食盐适量.香油少量.小葱适量做法:1.香菇泡软切小粒.2.鸡脯肉切成小粒用生粉腌10分钟.3.砂锅里米和加适量的水,调好时间煮开后,转小火 ...

  • 58种杀菌剂应用详解(赶紧收藏)

    广谱保护性杀菌剂.触杀作用较强阻止病菌侵入植物体内,主要起预防作用.防治对象:霜霉病.晚疫病.绵疫病.炭疽病.早疫病.叶霉病.斑枯病.褐纹病.锈病等. 1. 代森锌 广谱保护性杀菌剂.触杀作用较强阻止 ...

  • 初中数学二元一次方程组8种典型例题详解

    一.实际问题与二元一次方程组的思路 1.列方程组解应用题的基本思想列方程组解应用题,是把"未知"转换成"已知"的重要方法,它的关键是把已知量和未知量联系起来,找 ...

  • selenium+python自动化93-鼠标事件(ActionChains)源码详解

    ActionChains简介 actionchains是selenium里面专门处理鼠标相关的操作如:鼠标移动,鼠标按钮操作,按键和上下文菜单(鼠标右键)交互. 这对于做更复杂的动作非常有用,比如悬停 ...