美文网首页
python 爬取fcoin比特币交易市场 上文

python 爬取fcoin比特币交易市场 上文

作者: 简书用户9527 | 来源:发表于2018-08-05 23:56 被阅读187次
    爬取环境
    • 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.1
    Upgrade: websocket
    Connection: Upgrade
    Host: example.com
    Origin: http://example.com
    Sec-WebSocket-Key: sN9cRrP/n9NdMgdcy2VJFQ==
    Sec-WebSocket-Version: 13
    

    服务器响应:

    HTTP/1.1 101 Switching Protocols
    Upgrade: websocket
    Connection: Upgrade
    Sec-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/78762262

    欢迎光临我的小网站:http://www.00reso.com
    陆续优化中,后续会开发更多更好玩的有趣的小工具

    相关文章

      网友评论

          本文标题:python 爬取fcoin比特币交易市场 上文

          本文链接:https://www.haomeiwen.com/subject/aivsmftx.html