随着比特币价格的攀升,群众热情也不断高涨。都想跃跃欲试投资比特币,但是比特币交易你们了解多少呢?
看今天的最新新闻,做矿工这么挣钱

今天我们带大家访问的是【比特币交易网】的行情部分,我们获取一下最新的数字货币行情,分析一下

本文章会带大家爬取最新的数字货币交易信息并进行一定的数据分析。
我们数据分析:
最新价格前十排行榜
24小时涨幅榜
24小时跌幅榜
24小时成交额前十榜单
第一部分:爬取数据
按照我们前面介绍的爬取数据步骤:
获取url以及url分页的规律
发送请求【可以使用urllib或者requests】
获取响应对象中的数据
持久化存储数据
获取url以及url分页的规律
首先我们获取的是【比特币交易网】的行情部分首页链接:https://www.ibtctrade.com/cryptocurrency/p_1.html
接下来我们来分析一下分页的规律如下:


所以我们就知道链接的最后是变化的,第一页是p_1,第二页是p_2,....所以我们只要for循环改变页码后面的数值就可以,因此代码:

如果想获取更多的数据可以在range函数中设置大的范围。
发送请求【可以使用urllib或者requests】
有了url我们就需要进行下一步,开始使用urllib或者requests发送请求。具体urllib和requests的使用可以参照【20天学会爬虫】的内容部分。我们仍然是封装了一个函数名字叫get_html(url),带一个参数,就是我们的上一个步骤中的url路径。代码如下:

在上一个步骤的for循环中调用该函数

注意:一开始可以只测试一页的爬取是否成功,然后在加循环,否则很容易被封。
获取响应对象中的数据
经过测试我们发现确实可以获取每页的内容,此时我们就要开始分析页面并解析里面的数据了。
通过chrome的F12进入开发中工具页面,分析我们需要的数据位置。发现所有的内容都在一个class=content的div中,每一个a标签代表的是一个币种。

可以展开a标签继续分析每个数据所在的标签

了解了页面的结构后,我们就可以解析了。定义了一个parse_data(html)的函数,参数就是我们上一步骤中获取的html内容。

其中在解析函数中我们获取的24小时的涨跌榜是有空格和换行的,因此要使用列表推到式去除空格和换行的内容,让后再调用解析函数:

持久化存储数据
最后一步我们就要持久化存储我们解析到的数据啦!使用with+open()函数保存数据

提醒大家最后仍然要在main中调用save_csv(data)函数才可以。

这样就ok了吗?不是的!因为循环太快了对方很容易发现你就是一个爬虫,因此你可以使用time.sleep(second)进行延时处理,代码如下:

到此我们爬虫的内容就搞定了。
第二部分:数据分析部分

有了数据之后,我们就开始分析吧!首先启动jupyter notebook,新建python文件,导入所需的包

读取数据并设置数据的列名使用data.columns,查看添加后的前五条数据使用head()
为了了解数据的结构和数据类型,我们需要查看一下使用info()

成交价格前10榜单
下面我们开始获取最新成交价格前10榜单,但是我们通过info()查看的数据类型都是object,而我们需要对最新成交价进行排序就需要将其数据类型变成数值型,现在前面都有【¥】符号,我们要去掉之后再转换。另外需要注意的就是成交价格中有【-】的情况也要处理,这属于我们数据清洗的部分。要将【-】替换成0

在我们Python分析阶段如何实现呢?就要使用lambda匿名函数与map的结合,另外还要进行类型转换,此时虽然提取成功了,但是类型还没有转换成功,我们要转换成float类型。所以使用了astype('类型')进行处理。

此时我们就可以对这个数据进行可视化展示了,注意中文乱码问题

24小时涨幅榜
24小时涨幅榜我们也要进行数据的处理,因为我们知道该列是object类型的,而且有【+】、【-】的榜单。我们要找出【+】的币种,然后进行%的处理。

条形图展示:

24小时跌幅榜
我们了解涨幅榜之后,我们来看一下跌幅榜的处理

可视化展示:

24小时成交额前十榜单
大家仔细观察我们 的成交额,发现成交额有以【亿】为单位的,还有以【万】为单位的,还有【¥】符号。那这样的数据我们怎么处理呢?大招来喽~~~

我们定义了一个map_function()函数,处理单位问题和【¥】符号问题。然后进行可视化处理

当然还有很多内容我们还没有给大家展示,你期待哪些呢?快快留言点赞收藏吧!