前言
小编喜欢玩王者荣耀,但有点菜,所以想了解一下近半年王者荣耀所有英雄的赛事数据,看看自己喜欢玩的英雄在比赛中到底是个什么水平,以及热度前十的英雄是哪些,从中挑选几个适合的来练练。
数据来自王者荣耀官方网站:
https://datamore.qq.com/project/wzmatch/dist/index.html#/
需要登录的:
登陆以后,点击英雄,选择近半年的数据:
可以看到数据是直接可以导出的,比较友好,如果不能直接导出那该怎么办呢,所以我们从爬虫的角度来看看怎么获取数据。
爬虫
打开开发者工具,我们先翻页看看:
从第一页,第二页的截图看出,url 是没有变化的,说明的动态加载的,需要抓包,在 XHR 选项卡看到,每翻一页就有一个新的包,我们浏览一下,发现数据就在这个包里面:
找到了数据包,就可以写爬虫了,数据包的 url 中关于页数的参数是 page,有 5 页,由此构造所有 url:
循环请求 url,因为请求结果为 json 数据格式,我们需要转换为字典类型,再返回请求结果的数据,需要注意的是请求头是需要带上 cookie 的,因为是登录才能浏览,在数据包中的 Header 选项卡中的 Request Headers 找到:
获得请求数据后,提取数据使用 jsonpath 库,部分提取如下图:
最后需要把数据保存起来,保存为 csv 文件:
最后的保存结果:
这就是整个爬虫流程,其实很简单的。
赵云数据
小编最喜欢玩的英雄是赵云,七进七出,所以想了解一下赵云在这半年中的相关数据。
首先导入数据:
KDA 是(K+A/D)计算出来的,一般取值为 3 即为正常。
需要处理一下 KDA 的值,我们把 KDA 除以 10 保证和胜率,出场率,Ban率,热度在同一量纲:
接下来选择赵云相关数据,查看 Pick 场数排名,Pick 场数:178,总击杀:506,被 Ban 场数:
上场次数在一定程度上说明了此英雄的受欢迎程度,赵云的上场次数排名第八,看来赵云是一个受欢迎程度不错的英雄。
再来计算一下'场均KDA','胜率','出场率','Ban率','热度'所有英雄的均值,并查看赵云的这些值:
画一个雷达图更清晰的对比:
赵云的场均KDA与平均水平一致,其他的高于平均水平,赵云这种没有低于平均水平的英雄还是值得玩一玩的。
再来看看赵云的 KDA 的占比:
看来这半年的比赛中,赵云这个英雄是受欢迎的,但战斗数据在这半年的比赛中一般般刚好达到平均水平,加上小编的游戏体验赵云这个英雄很强的。
相关性
我们再来看看这些值的两两相关性:
制作相关性热力图更直观一些:
颜色越红,正相关越强,我们来看看几个比较红的区域。
总的来说,热度越高的英雄,在某些对局中让人烦,所以禁用率也较高。
热度前十英雄
我们计算热度前十英雄:
好了热度前十的英雄原来是这些,小编接下来准备从这些英雄中选择合适的玩一玩练一练了,打上巅峰王者~