微博 Qzone 微信 小伙用Python 分析了 20 万场吃…

2018-07-11 03:41:09来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

背景

最近老板爱上了吃鸡(手游:全军出击),经常拉着我们开黑,只能放弃午休的时间,陪老板在沙漠里奔波。 上周在在微信游戏频道看战绩的时候突发奇想,是不是可以通过这个方式抓取到很多战斗数据,然后分析看看有什么规律。

首先,神枪镇楼

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

第一步、分析数据接口

使用Charles抓包

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

https加密流量的处理

经过研究,可以通过在手机和电脑都安装Charles根证书的方式来实现对Https流量的分析

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

数据接口

接下来就根据这些数据来找出我们需要的接口了,经过分析,主要涉及三个接口

  • 获取用户信息接口
  • 获取用户战绩列表接口
  • 获取用户指定战绩详细信息接口

下面我们一个一个看

1. 获取用户信息接口

request

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

response

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

同理获取用户战绩列表接口和获取用户战绩详情接口

第二步、爬取数据

使用requests请求接口获取数据

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

使用redis来标记已经爬取过的信息

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

使用celery来管理队列

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

然后在task中控制API请求和Redis数据实现完整的任务逻辑,如:

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

开始抓取

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

有入口之后我们就用celery来启动worker去开始爬虫

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

通过flower,我们可以看到运行的效率还是非常不错的。

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

第三步、数据分析

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

分析结果

1. 平均用户日在线时长2小时

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

从分布图上看大部分用户都在1小时以上,最猛的几个人超过8小时。

注:我这里统计的是每一局的存活时间,实际在线时长会比我这个更长。

2. 女性角色被救次数高于男性

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

终于知道为什么有那么多人妖了,原来在游戏里面可以占便宜啊。

3. 女性角色救人次数高于男性

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

给了大家一个带妹上分的好理由。

4. 周五大家最忙

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

估计周五大家都要忙着交差和写周报了。

5. 晚上22点是游戏高峰

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

凌晨还有那么多人玩,你们不睡觉吗?

6. 最远击杀距离639米

我看了一下98K、SKS 和 AWP 的有效射程,大致都在 800 米以内,所以这个值可信度还是可以的。 反过来看抖音上的那些超远距离击杀应该都是摆拍的。

7. 能拿到「救死扶伤」称号才是最高荣耀

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

从分布情况可以看出来,救死扶伤比十杀还要难。

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

 

能拿到救死扶伤称号的大部分都是女性角色,再一次证明玩游戏要带妹。 回归到这个游戏的本质,那就是生存游戏,没什么比活下来更重要的了。

结尾

这次爬虫主要是利用了微信游戏频道可以查看陌生人数据的场景才能提取到这么多数据。我们可以通过同样的手段来分析王者荣耀和其它游戏的数据,有兴趣的同学可以尝试一下。

最后再说一下,Python学习交流群:125240963可以获取小编精心准备的海量Python学习资料

如果需要源码的话也可以在Python学习交流群:125240963获取

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:python3-开发进阶-仿博客园项目setting.py的文件的配置,admin,fo

下一篇:【Python】python模块加载