「全民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

相关文章
|
9月前
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。
|
数据采集 数据可视化 数据挖掘
Pandas数据应用:天气数据分析
本文介绍如何使用 Pandas 进行天气数据分析。Pandas 是一个强大的 Python 数据处理库,适合处理表格型数据。文章涵盖加载天气数据、处理缺失值、转换数据类型、时间序列分析(如滚动平均和重采样)等内容,并解决常见报错如 SettingWithCopyWarning、KeyError 和 TypeError。通过这些方法,帮助用户更好地进行气候趋势预测和决策。
429 71
|
8月前
|
SQL 数据挖掘 BI
数据分析的尽头,是跳出数据看数据!
当前许多企业在数据分析上投入大量资源,却常陷入“数据越看越细,业务越看越虚”的困境。报表繁杂、指标众多,但决策难、行动少,分析流于形式。真正有价值的数据分析,不在于图表多漂亮,而在于能否带来洞察、推动决策、指导行动。本文探讨如何跳出数据、回归业务场景,实现数据驱动的有效落地。
|
SQL 人工智能 数据可视化
数据团队必读:智能数据分析文档(DataV Note)五种高效工作模式
数据项目复杂,涉及代码、数据、运行环境等多部分。随着AI发展,数据科学团队面临挑战。协作式数据文档(如阿里云DataV Note)成为提升效率的关键工具。它支持跨角色协同、异构数据处理、多语言分析及高效沟通,帮助创建知识库,实现可重现的数据科学过程,并通过一键分享报告促进数据驱动决策。未来,大模型AI将进一步增强其功能,如智能绘图、总结探索、NLP2SQL/Python和AutoReport,为数据分析带来更多可能。
769 142
|
SQL 数据可视化 大数据
从数据小白到大数据达人:一步步成为数据分析专家
从数据小白到大数据达人:一步步成为数据分析专家
691 92
|
数据挖掘 PyTorch TensorFlow
|
存储 数据采集 数据可视化
Pandas数据应用:电子商务数据分析
本文介绍如何使用 Pandas 进行电子商务数据分析,涵盖数据加载、清洗、预处理、分析与可视化。通过 `read_csv` 等函数加载数据,利用 `info()` 和 `describe()` 探索数据结构和统计信息。针对常见问题如缺失值、重复记录、异常值等,提供解决方案,如 `dropna()`、`drop_duplicates()` 和正则表达式处理。结合 Matplotlib 等库实现数据可视化,探讨内存不足和性能瓶颈的应对方法,并总结常见报错及解决策略,帮助提升电商企业的数据分析能力。
673 73
|
存储 机器学习/深度学习 数据可视化
数据集中存在大量的重复值,会对后续的数据分析和处理产生什么影响?
数据集中存在大量重复值可能会对后续的数据分析和处理产生多方面的负面影响
959 56
|
存储 数据采集 数据可视化
Pandas数据应用:医疗数据分析
Pandas是Python中强大的数据操作和分析库,广泛应用于医疗数据分析。本文介绍了使用Pandas进行医疗数据分析的常见问题及解决方案,涵盖数据导入、预处理、清洗、转换、可视化等方面。通过解决文件路径错误、编码不匹配、缺失值处理、异常值识别、分类变量编码等问题,结合Matplotlib等工具实现数据可视化,并提供了解决常见报错的方法。掌握这些技巧可以提高医疗数据分析的效率和准确性。
469 22
|
机器学习/深度学习 传感器 数据采集
基于机器学习的数据分析:PLC采集的生产数据预测设备故障模型
本文介绍如何利用Python和Scikit-learn构建基于PLC数据的设备故障预测模型。通过实时采集温度、振动、电流等参数,进行数据预处理和特征提取,选择合适的机器学习模型(如随机森林、XGBoost),并优化模型性能。文章还分享了边缘计算部署方案及常见问题排查,强调模型预测应结合定期维护,确保系统稳定运行。
1177 0