主页 > imtoken授权管理系统 > 【Python趣味干货系列】第四期:使用Python爬取数字货币行情数据
【Python趣味干货系列】第四期:使用Python爬取数字货币行情数据
随着比特币价格的攀升,群众的热情也在攀升。 每个人都想尝试投资比特币,但您对比特币交易了解多少?
观看今天的最新消息,如何作为矿工赚钱
今天带大家逛一逛【比特币交易网】的行情部分,一起来了解最新的数字货币行情并进行分析
本文将带您爬取最新的数字货币交易信息,并进行一定的数据分析。
我们的数据分析:
第 1 部分:爬取数据
按照我们前面介绍的爬取数据步骤:
获取url和url分页规则
首先我们得到【比特币交易网】行情部分的首页链接:
接下来我们分析分页的规则如下:
所以我们知道链接的结尾是变化的,第一页是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小时涨跌幅榜单是有空格和换行符的,所以我们需要使用list push的方法去掉空格和换行符的内容,然后调用分析函数:
持久存储数据
最后一步,我们将我们解析出来的数据进行持久化!使用with+open()函数来保存数据
提醒大家,最后还是要在main中调用save_csv(data)函数。
这个可以吗? 不! 因为循环太快,对方很容易发现你是爬虫,所以可以使用time.sleep(second)进行延时处理,代码如下:
至此,我们爬虫的内容就完成了。
第二部分:数据分析部分
有了数据,我们就开始分析吧!首先启动jupyter notebook,新建一个python文件,导入需要的包
读取数据并使用data.columns设置数据的列名,添加后使用head()查看前五条数据
为了理解数据的结构和数据类型,我们需要看一下info()的使用
成交价Top 10榜单
接下来我们开始获取最新成交价的前10名列表做比特币数据的是什么工作,但是我们通过info()查看到的数据类型都是object,而我们需要对最新成交价进行排序,需要将数据类型改为numeric类型,现在有【¥】符号,我们需要在转换前去掉它。 另外需要注意的是,成交价中[-]的情况也要处理,这是我们数据清洗的一部分。 将 [-] 替换为 0
在我们的Python分析阶段如何实现呢? 需要结合使用lambda匿名函数和map,还要进行类型转换。 此时虽然提取成功了,但是类型还没有转换成功,我们需要转换为float类型。 所以使用 astype('type') 进行处理。
此时我们可以对数据进行可视化,注意中文乱码问题
24小时涨价清单
我们还需要处理24小时涨价列表的数据,因为我们知道该列是object类型的,有[+]和[-]列表。 我们需要找出[+]的币种,然后进行%处理。
条形图显示:
24小时掉落清单
了解完增加列表,我们再来看一下减少列表的处理
画面显示:
24小时成交额前十榜单
大家仔细观察我们的营业额,发现营业额的单位是【亿】,单位是【万】,符号是【¥】。 那么我们如何处理这些数据呢? 大动作来了~~~
我们定义一个map_function()函数来处理单位问题和[¥]符号问题。然后可视化
当然,还有很多内容我们还没有给大家展示。 你有什么期待? 赶紧留言点赞收藏吧!