python 爬取fcoin比特币交易市场
发布日期:2021-06-28 19:08:17 浏览次数:3 分类:技术文章

本文共 1907 字,大约阅读时间需要 6 分钟。

爬取环境
  • win10
  • python3
  • scrapy
爬取思路

首先你得先了解以下

  • http(https)请求(百科)
  • websocket通信协议
  • python 模拟websoket客户端
(一)websocket简要介绍

WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。


WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

(二)websoket比http好的优点
  • (1)相对较少的控制开销
  • (2)更强的实时性
  • (3)保持连接状态
  • (4)更好的二进制支持
  • (5)可以支持扩展
  • (6)更好的压缩效果

image.png

(三)websoket的应用场景
  • 1 直播
  • 2 实时聊天
  • 3 实时交易平台
  • 4 其他
(四)websoket协议

WebSocket 是独立的、创建在 TCP 上的协议。

Websocket 通过 HTTP/1.1 协议的101状态码进行握手。

为了创建Websocket连接,需要通过浏览器发出请求,之后服务器进行回应,这个过程通常称为“握手”

(五)websoket握手

客户端请求:

GET / HTTP/1.1Upgrade: websocketConnection: UpgradeHost: example.comOrigin: http://example.comSec-WebSocket-Key: sN9cRrP/n9NdMgdcy2VJFQ==Sec-WebSocket-Version: 13

服务器响应:

HTTP/1.1 101 Switching ProtocolsUpgrade: websocketConnection: UpgradeSec-WebSocket-Accept: fFBooB7FAkLlXgRSz0BT3v4hq5s=Sec-WebSocket-Location: ws://example.com/
(六)与http字段不一样的地方
  • Connection必须设置为upgrade,表示客户端希望连接升级

  • Upgrade字段必须设置为WebSocket,表示希望升级到WebSocket协议

  • Sec-WebSocket-Key是随机的字符串,服务器端会用这些数据来构造出一个SHA-1的信息摘要。把“Sec-WebSocket-Key”加上一个特殊字符串“258EAFA5-E914-47DA-95CA-C5AB0DC85B11”,然后计算SHA-1摘要,之后进行BASE-64编码,将结果做为“Sec-WebSocket-Accept”头的值,返回给客户端。如此操作,可以尽量避免普通HTTP请求被误认为Websocket协议。

  • Sec-WebSocket-Version 表示支持的Websocket版本。RFC6455要求使用的版本是13,之前草案的版本均应当弃用

    • Origin字段是可选的,通常用来表示在浏览器中发起此Websocket连接所在的页面,类似于Referer。但是,与Referer不同的是,Origin只包含了协议和主机名称。

http协议的user-agent,cookie都可以在websocket握手过程中使用


(六)websoket的事件
  • on_open : 表示刚刚连接的时候
  • onmessage : 表示接受到消息怎么做
  • send: 表示给服务器发送消息
  • on_close:表示关闭链接

知道这些事件,对于查找js文件中的WebSocket协议是很容易找到的。

(七)fcoin比特币交易市场爬取思路

image.png

这是Fcoin官网交易市场的ft_usdt交易币的实时刷新数据截图

因为fcoin每次进行刷新一次都要反应半天,很容易造成卡死。特别慢(24H交易,坐拥很多炒币大佬)

image.png

卡不卡,拼配置或者宽带或者人少的时间段

这就是WebSocket协议,一般ws开头

image.png

框柱的数据便是WebSocket协议下的数据

数据实时,数据量小。

image.png

查看步骤:选中上面的ws,再选中左侧的ws,选择Frame栏,方形框住的便是,箭头标的带框的红色箭头向下表示服务器发送的数据。

剩下的便是通过查找WebSocket的几个方法进行数据的通信

更多资源请访问:

欢迎光临我的小网站:

陆续优化中,后续会开发更多更好玩的有趣的小工具

转载地址:https://blog.csdn.net/xudailong_blog/article/details/81177395 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python 爬取fcoin比特币交易市场 下文
下一篇:python3 爬取今日头条文章(巧妙避开as,cp,_signature)

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月20日 15时04分57秒