用代码向 90 后逝去的青春致敬

(点击上方蓝字,快速关注我们)


来源:stormdony 投稿

https://mp.weixin.qq.com/s/3DriToN683X_74bQKQCX3Q


前段时间,腾讯宣布停止乐斗Ⅱ和QQ宠物的运营,然后就订阅号里就被各种回忆杀的推文刷屏了。今天也来称蹭一下"热点",虽然有点晚。


都说“陪伴是最长情的告白”,那些陪我们走过年少时光的小游戏,你还记得多少?

可能很多90后都玩过乐斗Ⅱ。但是很遗憾,今天的主角不是它,而是它的兄弟——“Q宠大乐斗”。


今天分享的是:如何使用 selenium 的奇技淫巧,让“Q宠大乐斗”自动运行,自动打游戏。

640?wx_fmt=png


具体步骤


   

第一步:分析链接,因为直接使用网页动画版(也就是上图)的网址的话,会有Flash动画,可能会因为网络的问题,导致延迟,从而影响程序的运行。所以选择直接关注微信公众号“Q宠大乐斗”,从开始游戏的接口进去,这样就可以进入文字版的游戏,减少不必要的网速占用。

第二步:通过审查元素找到相应的元素,使用selenium进行定位控制

第三步:设置定时任务,让游戏脚本每天定时运行,游戏自动化,实现躺赢的最终理想,哈哈 640

注意事项


   

  1. 因为等级原因,有一些功能可能对低等级不开放,所以这个游戏需要“私人订制”

  2. 有一些奖励是需要等到了一定的活跃度才可以完领取,所以需要一定的游戏策略,否则就需要在程序中进行多次判断


代码书写


   

因为这个游戏的任务有点多,所以分模块来写比较好,这样逻辑不会乱,代码的可读性也更强一点

登录模块:

640?wx_fmt=png

通过上图可以找出登录的元素位置,直接使用selenium进行登录操作。

640?wx_fmt=png

上面代码中的第14行是设置等待。直白一点就是:如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常

640?wx_fmt=gif    (自动登录哦 :-)

其他模块

之前说过,等级不同,任务也不同。所以我这里就放上几个共同的模块。具体的任务看下图

640?wx_fmt=png

每日奖励模块:

640?wx_fmt=png

乐斗好友模块:

640?wx_fmt=png

其他的模块我这里就不放代码了,毕竟等级不一样,代码可能没有通用性。而且主要的方法就是定位元素,前篇推文已经详细介绍了,主要是设置等待时长和注意异常情况的判断处理就可以了。

计划任务


   

具体的计划任务教程,参考:Python与win的完美结合--计划任务。设置好时间,因为这个游戏的宠物是靠体力来进行的并且每天只能进行一次任务,所以每天定时打一次就可以了。

640?wx_fmt=png


640?wx_fmt=png


最后


   

今天这个自动打游戏的demo,只是单纯的练习一下selenium操作;当然也顺便回忆一下90后的生活,相信有一部分90后小时候还是会玩过这个游戏的。

可能有人就觉得这游戏有点low(确实有点low),那我只能昧着良心回一句:哥玩的不是游戏,是情怀…… 640?

代码:

https://github.com/stormdony/python_demo/tree/master/QQ_Pet_Fight



【关于作者】


stormdony:一个正在发育并且渴望成为一个有技术、有情怀的coder。



【关于投稿】


如果大家有原创好文投稿,请直接给公号发送留言。


① 留言格式:
【投稿】+《 文章标题》+ 文章链接

② 示例:
【投稿】《不要自称是程序员,我十多年的 IT 职场总结》:http://blog.jobbole.com/94148/


③ 最后请附上您的个人简介哈~



看完本文有收获?请转发分享给更多人

关注「Python开发者」,提升Python技能

640?wx_fmt=png

640?wx_fmt=jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值