全国服务热线:18980020603 成都热线:028-86633922
新闻中心网站专题联系我们
行业新闻 建站经验 网站建设资讯 手机网站资讯 微信网站建设资讯 APP开发资讯 商城网站资讯

成都手机网站建设:剖析全民k歌的秘密

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

\

 

python爬虫获取用户数据

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

 

 

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

 

 

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

 

 

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

 

 

 

 

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

获取多个用户的数据

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

 

 

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

 

 

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

 

 

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

 

 

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

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

 

 

粉丝列表分页获取

 

 

获取每一个粉丝的id

 

 

进入粉丝二级列表

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

 

 

存储的数据

python爬虫获取歌曲数据

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

 

 

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

 

 

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

 

 

 

 

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

 

 

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

 

 

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

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

 

 

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

 

 

总结

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

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

本文是成都网站建设公司、成都网站设计制作公司、成都APP开发公司、成都响应式网站建设、成都VR全景制作-桔子科技公司为您整理!
成都网站建设,成都网站设计,成都网站制作,成都网页设计,成都网站建设公司 ,成都网站设计公司,成都网站制作公司,成都网页设计公司,网站建设网站制作网站设计网页设计成都响应式网站建设、成都响应式网站制作、成都响应式网站开发、成都全景制作、成都VR全景制作成都手机网站建设,手机网站建设,成都APP开发,APP开发,成都建网站,成都做网站,成都商城网站建设,集团网站建设,网站建设,高端网站建设,品牌网站建设,成都平台网站建设,成都响应式网站建设,成都微信网站建设,成都微商城网站建设,成都微信营销,成都微信小程序开发、成都网站优化,成都网络公司。

下一篇:成都手机网站建设:科技时代的正确打开方式上一篇:成都手机网站建设:ios11页面的优化

最新案例
手机/微网站
  1. [成都]微信网站建设:微信分销系统能为商铺带来哪些特色服务
  2. [成都]微信网站建设:如何通过微信公众号来推广产品
  3. [成都]微信网站建设:微信开发都有些什么功能
  4. [成都]手机网站:手机网站设计需要达到什么效果
  5. [成都]手机网站:手机网站响应式网站解决方案
  6. [成都]手机网站:手机网站响应式网站解决方案
网络营销
  1. APP开发: APP网页评分功能设计
  2. APP开发:手机APP开发前这4点必须要了解
  3. APP开发:为什么企业要做手机APP
  4. APP开发:你可以更好的留住APP用户
  5. APP开发:开发时间的长短主要由哪些因素决定
  6. APP开发:电子商务类APP开发的4点建议
img

7x24小时售后服务

img

5倍故障时长赔付

img

15天无理由退款

img

N对一管家服务

让我们的顾问联系您

  • 电话:4006-028-024 028-86633922

    邮箱:Service@orangeapp.cn

    成都市成华区崔家店路789号上城国际1-24-9号

qq sina