「全民k歌」有什么秘密?网站数据分析之数据获取

简介: 最近看到身边好几个朋友都在用“全民K歌”这款软件在手机上K歌,使用频率还是很高,于是就想来看看全民K歌平台的用户究竟是一群什么样的用户?他们有什么样的特征。然后进行数据分析,强化自己的分析思维与实战能力。

最近看到身边好几个朋友都在用“全民K歌”这款软件在手机上K歌,使用频率还是很高,于是就想来看看全民K歌平台的用户究竟是一群什么样的用户?他们有什么样的特征。然后进行数据分析,强化自己的分析思维与实战能力。这一个过程我将会分为四个部分来写:数据获取,数据清洗,数据的呈现,分析报告的撰写。本文是第一部分。

「全民k歌」有什么秘密?网站数据分析之数据的获取

python爬虫获取用户数据

进入用户的个人中心,下面的图中画方框的地方就是我们需要获取的数据:

「全民k歌」有什么秘密?网站数据分析之数据的获取

接下来我们看一下这些数据的存储方式,打开nt之后我们可以看见这些数据都存储在网页中,这样就非常容易获取了,这里需要注意的有两点:一个是年龄和地址,这两者需要在获取之后分开进行存储,便于后面分析(粉丝数,关注数也是同理);另外一点就是性别问题,在网页中我们没有发现直接指示性别的关键词,其实这里的性别是存放在画红色圈中的class的名字里面的“icon icon_boy”如果是女孩则是“icon icon_girl”,这里获取之后我们用split去掉无关字符,只取boy和girl关键词。

「全民k歌」有什么秘密?网站数据分析之数据的获取

我们直接用BeautifulSoup来获取这些数据:

「全民k歌」有什么秘密?网站数据分析之数据的获取

这些数据也就是我们最终需要的数据,我们将他们存放在Mongodb数据库中,以便于后面的分析与导出:

「全民k歌」有什么秘密?网站数据分析之数据的获取

「全民k歌」有什么秘密?网站数据分析之数据的获取

通过分析我们发现每一个用户的个人主页链接都仅仅只是ID不同,我们将这些ID也存放起来,方便后面获取这些用户所唱的歌曲,这个后面获取到id之后直接传回来就可以获得这个用户的个人信息了。

获取多个用户的数据

为了获得更多用户的数据,我们需要从用户A进入它的粉丝页面,获取粉丝的ID,然后再进入粉丝B的个人主页获取用户的信息,再从这些粉丝的主页获取他们的粉丝。类似一个递归的形式,思路是这样,但在后面实际运行的时候,python老师出错,个人感觉应该是堆栈溢出了,目前还是没有搞定,但是可以获取粉丝的二级列表,对于目前的分析来说,已经足够了。

「全民k歌」有什么秘密?网站数据分析之数据的获取

在用户的粉丝页面我们看到用户的粉丝列表是逐步加载的,也就是异步加载的形式,我们就只能来抓包了。

「全民k歌」有什么秘密?网站数据分析之数据的获取

我们可以看见用户的粉丝数据是用json形式存储的,在每一次加载,一共加载20名粉丝的信息,这里我们只获取uid标签的值。接下来问题来了,我们获取的只是用户的前20名粉丝,如何获取其他的粉丝呢?方法肯定就是替换链接了,经过反复的查找,发现在已有的链接中每次加载变化的起作用的字段就是这个红色圈内的字段:

「全民k歌」有什么秘密?网站数据分析之数据的获取

但是这样的一个数据是从哪里来的呢?如果是随机生成的就没有办法了获取下一级列表了。经过查找,我们发现这个last_tm的值在上一级的数据中存放着。这一下就好办了,只需要在第一次获取用户id的同时,将last_tm的值也同时获取下来,下一次加载时,直接掉用即可。

「全民k歌」有什么秘密?网站数据分析之数据的获取

我们知道了如何分页,如何获取存储的数据,那么到底该循环多少次才能把所有的用户都获取下来呢?在最开始,我们已经知道了用户粉丝有多少,那么分多少也不就简单了。用粉丝数除以每页粉丝数20然后取整就是我们的循环次数了。

下面是获取用户粉丝的代码:

「全民k歌」有什么秘密?网站数据分析之数据的获取
粉丝列表分页获取

「全民k歌」有什么秘密?网站数据分析之数据的获取
获取每一个粉丝的id

「全民k歌」有什么秘密?网站数据分析之数据的获取
进入粉丝二级列表

最后一共只爬取了8671条用户数据,数据量还是比较少,但做分析之用,基本够了。

「全民k歌」有什么秘密?网站数据分析之数据的获取
存储的数据

python爬虫获取歌曲数据

在上面我们已经获得了8千多位用户,那么这些用户平时都喜欢唱什么歌,他们的活跃频率如何,这些都可以从用户发布的歌曲中获得一些信息。

「全民k歌」有什么秘密?网站数据分析之数据的获取

这里是歌曲页的数据获取情况,其中最为重要的就是画红色圈的部分了,因为这一部分数据显示了用户的活跃时间,已经所使用的手机型号,这个手机型号在一定程度上就代表了这个用户的特征,所以这个数据是极为重要的。

「全民k歌」有什么秘密?网站数据分析之数据的获取

同样的,这些歌曲的列表是用异步加载的形式显示的,我们直接来 抓包:跟上面一样是用json来存储信息的,我们直接解析获取,对于手机型号这一部分没有的,待会儿单独获取。

「全民k歌」有什么秘密?网站数据分析之数据的获取

「全民k歌」有什么秘密?网站数据分析之数据的获取

下面就是翻页的问题了,我们打开heahers查看链接比较之后发现每翻一页,连接中start便加1,而每一页有8条数据,这样一来每一个用户的作品我们需要翻的页数就是作品数除以8取整即可。

「全民k歌」有什么秘密?网站数据分析之数据的获取

最后我们单独用一个函数来获取时间信息:

「全民k歌」有什么秘密?网站数据分析之数据的获取

最后将所获得的数据存放起来即可。

这里再次注明一点,这里用的用户都是之前已经获取的用户他们所唱的歌曲,我将他们从CSV文件中读取了用户的id和作品数,传给这个程序使用。

「全民k歌」有什么秘密?网站数据分析之数据的获取

最后获取到了84万条数据,数据的样式如下:

「全民k歌」有什么秘密?网站数据分析之数据的获取

总结

这次数据的抓取遇到最大的一个坎就是在做用户的粉丝翻页的时候,一直没有找到last_tm这个 数据,导致翻页做不成,搞了好长时间。当时都已经放弃了,隔了一天之后再去看,突然在前一页中发现了第二页的last_tm,那一刻真的是挺开心的。

另外在数据的抓取过程中,最好的就是在最初数据存储的时候就经历将数据清洗好,比如那些不该有的字段都提前去掉在存储,多个数据在一起的也尽量拆开再存储,以便于后面的数据分析。



本文作者:橘子侠

来源:51CTO

相关文章
|
1月前
|
自然语言处理 小程序 数据挖掘
数据分析实战-Python实现博客评论数据的情感分析
数据分析实战-Python实现博客评论数据的情感分析
90 0
|
3月前
|
机器学习/深度学习 数据挖掘 Python
Python 的科学计算和数据分析: 解释什么是数据规整(Data Wrangling)?
Python 的科学计算和数据分析: 解释什么是数据规整(Data Wrangling)?
|
4月前
|
机器学习/深度学习 存储 SQL
15个超级棒的外文免费数据集,学习数据分析不愁没有数据用了!
15个超级棒的外文免费数据集,学习数据分析不愁没有数据用了!
|
2月前
|
数据采集 数据挖掘 API
主流电商平台数据采集API接口|【Python爬虫+数据分析】采集电商平台数据信息采集
随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。本文将介绍如何使用Python编写爬虫程序,抓取电商平台的商品信息、价格、评论等数据。 当然,如果是电商企业,跨境电商企业,ERP系统搭建,我们经常需要采集的平台多,数据量大,要求数据稳定供应,有并发需求,那就需要通过接入电商API数据采集接口,封装好的数据采集接口更方便稳定高效数据采集。
|
3月前
|
数据可视化 数据挖掘 Java
提升代码质量与效率的利器——SonarQube静态代码分析工具从数据到洞察:探索Python数据分析与科学计算库
在现代软件开发中,保证代码质量是至关重要的。本文将介绍SonarQube静态代码分析工具的概念及其实践应用。通过使用SonarQube,开发团队可以及时发现和修复代码中的问题,提高代码质量,从而加速开发过程并减少后期维护成本。 在当今信息爆炸的时代,数据分析和科学计算成为了决策和创新的核心。本文将介绍Python中强大的数据分析与科学计算库,包括NumPy、Pandas和Matplotlib,帮助读者快速掌握这些工具的基本用法和应用场景。无论是数据处理、可视化还是统计分析,Python提供了丰富的功能和灵活性,使得数据分析变得更加简便高效。
|
13天前
|
人工智能 监控 数据可视化
【Python】Python商业公司贸易业务数据分析可视化(数据+源码)【独一无二】
【Python】Python商业公司贸易业务数据分析可视化(数据+源码)【独一无二】
|
1月前
|
存储 数据采集 数据挖掘
python数据分析——数据分类汇总与统计
数据分类汇总与统计是指将大量的数据按照不同的分类方式进行整理和归纳,然后对这些数据进行统计分析,以便于更好地了解数据的特点和规律。
55 1
|
1月前
|
存储 SQL 数据挖掘
python数据分析——数据的选择和运算
在数据分析中,数据的选择和运算是非常重要的步骤。数据选择和运算是数据分析中的基础工作,正确和高效的选择和运算方法对于数据分析结果的准确性和速度至关重要。
41 0
|
1月前
|
JSON 数据挖掘 数据格式
python数据分析——数据分析的数据的导入和导出
数据分析的数据的导入和导出是数据分析流程中至关重要的两个环节,它们直接影响到数据分析的准确性和效率。在数据导入阶段,首先要确保数据的来源可靠、格式统一,并且能够满足分析需求。这通常涉及到数据清洗和预处理的工作,比如去除重复数据、处理缺失值、转换数据类型等,以确保数据的完整性和一致性。
36 0
|
1月前
|
数据采集 数据可视化 数据挖掘
python数据分析——业务数据描述
业务数据描述将从统计学角度来分析这指标。利用统计方法,数据分析人员可以通过相应统计模型开展数据分析。数据分析过程包括数据收集,数据处理,数据探索,模型方法应用,分析结果数据展现及形成分析报告。 业务报表是指对业务内容和数据的统计分析图表。统计图表代表了一张图像化的数据,形象地呈现数据。我们常常提到的可视化分析图表一般包括比较类图表,占比类图表,相关类图表和趋势类图表。
36 1