主页 > imtoken授权管理系统 > 【Python趣味干货系列】第四期:使用Python爬取数字货币行情数据

【Python趣味干货系列】第四期:使用Python爬取数字货币行情数据

imtoken授权管理系统 2023-01-16 20:05:38

随着比特币价格的攀升,群众的热情也在攀升。 每个人都想尝试投资比特币,但您对比特币交易了解多少?

观看今天的最新消息,如何作为矿工赚钱

云比特是比特币分支?_用比特币源码做山寨币_做比特币数据的是什么工作

今天带大家逛一逛【比特币交易网】的行情部分,一起来了解最新的数字货币行情并进行分析

做比特币数据的是什么工作_用比特币源码做山寨币_云比特是比特币分支?

本文将带您爬取最新的数字货币交易信息,并进行一定的数据分析。

我们的数据分析:

第 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()函数来处理单位问题和[¥]符号问题。然后可视化

云比特是比特币分支?_用比特币源码做山寨币_做比特币数据的是什么工作

当然,还有很多内容我们还没有给大家展示。 你有什么期待? 赶紧留言点赞收藏吧!