Power Query火币网行情数据抓取
火币网行情数据:
我们用Power BI Desktop与Excel 中的Power Query都试了试:
Power BI Desktop中的Power Query 有个Web.BrowserContents函数,从函数名就能知道,这个函数能直接以浏览器方式获取网站的页面信息,虽然这个函数效率不高,但是只要是加载出来的网页,都能获取到数据。
当然这个函数有一个明显的缺点,它是所见即所得,页面上显示啥,获取的数据就是啥,上图中第六列,第七列的数据都是带单位的,这虽然在网页上很直观,但是如果用来做图表或计算,就不好用了。
在Excel的Power Query中只有Web.Contents函数,这个函数获取到的内容即使直接解析成文本,也缺少数据部分,获得的是一个空白页面。
所以如果要抓取信息,我们还要认真分析这个网站:
我们查了些资料,火币网的API是ws协议的:
而我们平常那些抓取数据的网站都是http协议。
一旦建立连接之后,就会不停地推送消息:
Pong是时间戳,像心跳一样5秒一次。
而且转递的消息是经过压缩的二进制数据,好在数据并没有加密,只是简单的gzip压缩。
一共有好几个ws,哪个才是我们需要的数据呢?这个带vip就是我们需要的数据。
我们好奇就打开其中一个的K线图来查看:
同样也是ws协议推送数据。
我们对网站的分析就到这里了。
为什么不叫数据抓取,叫获取,哈哈,因为这次不能像以往那样通过刷新来直接获得实时数据,需要手动去复制二进制信息过来,解析得到数据,不是自动化过程,要手动获取。
首先,我们选中其中一条数据,复制base64格式:
到Excel或Power BI Desktop中新建空白查询:
把复制的这段文本用#binary变成二进制:
然后解压缩:
然后json解析:
然后展开数据就可以了:
至于这中间的各种列名称的含义是啥,就大家自己去琢磨吧。
我们再来复制一个K线图中的二进制数据:
这里面的数据推送得特别频繁,刷屏很快,但是数据文件都很小,我们来到开头位置,找到kline一样,然后在下面找比较大的数据包复制出来:
然后我们刚刚的过程直接复制一份,把base64换成k就好了,解压缩与解析的部分不用动,当然后面展开的部分不太一样,要重新做。
如我们预料的是15分钟的K线数据:
展开的结果,这个直接有可读的数据标题了:
Id应该是时间戳,可以变成日期时间格式:
这样一个K线数据表就有了。
以上就是关于火币网的行情数据获取的方法。
PowerQuery ¥130.6 购买页面更新:2024-03-08
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号