【攻略】程序员“王者”攻略,用Scrapy抓取104个王者荣耀英雄数据后...


本文由黄勇老师特约供稿

学习人数超5万人的《150讲轻松搞定Python网络爬虫》课作者

网易、360、华为特约Python讲师

说在前面.


周末无聊,翻翻手机,又重新打开了之前和兄弟们团战的游戏——王者荣耀。王者荣耀这款游戏,我一直都比较喜欢,但是却一直不是很厉害。闲下来,想摸索一下各个英雄的一些属性,思来想去,发现还是得有确切的数据研究起来才不会像个无头苍蝇。说干就干,于是我到网上搜到了一个王者荣耀英雄数据网:http://db.18183.com/wzry/ 

里面列出了所有王者英雄数据,并且在详情页中还详细的列出了英雄的每项属性。

巧妇难为无米之炊,数据有了。接下来就写代码,分分钟所有英雄数据抓取下来了。

对Python爬虫或者Scrapy框架感兴趣的小伙伴也可以关注一下之前我在CSDN程序员学院更新的一门课程《150讲轻松搞定Python网络爬虫》相信会对你有帮助。

01

爬虫数据抓取

这里我们用Scrapy+CSV的方式进行抓取,Scrapy是一个非常完善的网络爬虫框架,用他创建的项目脚手架都已经做好了,我们需要做的就是补充爬虫规则,完善存储细节。存储这里我们用的是CSV的方式,方便后续做数据分析。

 

这里我们来简单的说一下爬虫项目的细节。这个网站结构比较简单,没有做什么反爬虫措施。首先在首页中,列出了所有英雄详情页的url,我们通过在浏览器中按F12进入控制台后,可以看到:

 

所有英雄的详情页url,都是存放到class名为mod-iconlist的ul下面,下面的每个li,就是一个英雄数据,并且a标签的href属性,就是英雄详情页的url。这样就能找到所有英雄的详情页,为我们请求每个英雄的详细数据做好准备了。

 

进入到详情页后,可以看到英雄的每个属性。通过按F12后,可以看到英雄属性是存放到这里的:

 

两个解析规则都弄准备好了,我们接下来就可以写代码抓取了。

具体代码因为篇幅有限,为了保证代码完整性,大家感兴趣可以关注本公众号回复“王者荣耀”,即可领取。

02

数据分析

经过5分钟左右的抓取,所有的英雄数据都抓取下来了。这里总共抓取到了105行数据,其中第一行是表头,所以总共有104位英雄:

 

其中每一列都是他的一项属性,因为属性值过多,我这里就不做过多介绍。大家感兴趣可以查看我的代码。

 

好了,数据都有了,接下来就做一些有意义的分析了。

1. 英雄类型及其个数:

众所周知,王者荣耀中的英雄,分为射手、坦克、法师等。那总共有哪些类型,每个类型又有多少个英雄呢?经过分析后有:

 

 

可以知道,法师是数量最多的,其次是展示和射手。为什么法师是最多的?其实法师是整个moba游戏中,可玩性最高的英雄,法师一般走中路,能带动全场节奏,是一个非常关键的人物。

先来看看什么英雄移动速度最快?

如果你是跟我一样,在团战输了的时候跑得快,那你肯定想知道什么英雄在没有加装备的情况下移动速度最快了。这里我们也用代码通过文字和图片的方式看到:

 

 

其中梦奇和盾山的移动速度是最快,所以如果怕死的小伙伴,选这两个英雄绝对没错。数据出来了可以根据自己的喜好针对性的强化单英雄的熟练度,去分析出适合自己的打法。

就拿这个灵活的胖子梦琪举例,重做后的梦奇会以0质量开局。质量只会通过技能释放增加,而不会再随时间增加。同时质量的提升不会给梦奇带来减速。

当梦奇处于质量100的胖形态时,它将拥有更高的属性增益和更具威胁的普攻。尽量在变胖的时候和敌人交锋,让他们尝尝梦奇的厉害。

经过最新一轮的英雄改版,玩法设计上,希望玩家可以随时随地感觉到梦奇与梦力泡泡之间的强关联。梦力泡泡既是梦奇最喜爱的玩具,也是一个能承载更多能量的容器:泡泡在外飞行的时间越久,它最终的收益也越高。

技能组合设计上,梦奇有不同方式让梦力泡泡延长或改变飞行路径之后再回到自己的身上——比如梦奇会遁入梦境,在似梦似醒间环形遨游,在进行位移的同时,还能躲避技能伤害以及延长泡泡的飞行路径。

(图片素材来源:王者荣耀公众号)

数据虽然不能帮助你直通王者,但是能够在英雄选择搭配上给出精确的参考,结合自己喜欢的玩法进行强化,用写BUG的时间多多练习,至少还是可以做到不坑不浪稳定输出的。

如果对Python爬虫或者Scrapy框架不是很熟悉的小伙伴,可以看下我的课程《150讲轻松搞定Python网络爬虫》了解详情,学完后这个本文的项目就轻而易举了。

为了帮助更多的同学,我结合自己多年的Python实战经验和工作体会,为你设计了简单易学的课程体系,就算你只是Python小白,一样可以学得会、听得懂!

点击查看你的课表????

                     

可以上下滚动的图片

再来看看什么英雄初始血量最多?

 

毫无悬念,亚瑟的血是最高的,毕竟是作为坦克,其次是吕布,廉颇和牛魔王。再反过来,看下哪些英雄的血量是最少的:

 

阿古朵、嫦娥血量少得可怜,所以选这两个英雄,在前期一定要猥琐发育啊。

就阿古朵的基础数值来看,阿古朵是一名较依靠玩家操作的英雄,他在巅峰赛所有打野位英雄中胜率稳居首位,但是在低分段却很难打出优势,其中有一点可能是因为玩家对于阿古朵的不了解,但是想要用她来尝试上分,就要好好分析研究一下了。

优缺点分析

优点:两块一控

①打野快

②移动快

③大招带有控

缺点:自身脆,容被抓

①反野易被骚扰,反野能力弱

②释放熊之后的本体脆弱,本体死亡,阿古朵就死亡

③阿古朵没有经济很难发挥作用

玩法思路

①常用连招:2132,无论追击敌人还是逃跑,都很实用。

②阿古朵叠加野怪层数并不一定需要用放生才能叠加,其他方式也可以。

③逃生时,阿古朵可先使用二技能逃跑,冲锋即将结束后再使用大招,最后接二技能爆弹雷种,又能位移一段距离。

④一技能的范围比较大,而且有一定的控制效果,可运用在团战,压塔,守塔,打龙,限制走位等作用。

打法技巧:

1:阿古朵开局可以配合队友去反敌方野区,但是如果被骚扰就可以战略性撤退,清理自家野区。四级之后,阿古朵可以利用自身的技能去抓敌方发育路射手,限制敌方英雄的发育。

2:团战时阿古朵可以选择后手出击,然后一定要注意自身本体的站位。阿古朵在敌方残血时可以先使用二技能突袭敌方英雄,然后利用大招的击飞效果,打出一个控制链,从而收割人头。

03

更多数据

当然这里我们还可以进行更多的研究,比如查看一下物理防御、法术防御的排名和分布情况。这里就不一一介绍了。如果大家感兴趣,可以拿到我的代码,里面有更多的属性供大家学习。

看到这了,

如果您对爬虫感兴趣,想要了解学习。

可以了解一下我的课程。

《150讲轻松搞定Python网络爬虫》


点个“在看”,少个“bug”

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值