几天前, 我母上大人在我们家群里发了一条消息

一看这文案, 就知道又是一个骗流量的小游戏, 一看就让人没什么兴趣... 但是出于对我母上大人的尊(hào)重(qí)我还是点进来看了一下

游戏链接:

http://wap.jue-huo.com/app/html/game/1to50/1to50.html

游戏规则十分简单, 按顺序从1点到50

在25或者之前, 点完的数字方块会变成一个25之后的, 比如1点完可能变成37, 然后2变成41这样子

... 然后Sushi就开始了疯狂刷分

难啊!

然而我怎么能被这种小游戏难倒, 怎么都得进30秒吧

一定是我不适应手机, 用电脑试试!

"正常人, 做正常事"... 我的智商仿佛受到了歧视! 不可以!

多次尝试之后我发现这个游戏在你点错的时候没有任何惩罚, 继续点下去就好了, 于是乎我就开始扇我手机耳光

结果是啥都按不到, 玩了10多秒还没按到3...

很快我就开始寻找能全面按到屏幕的物品, 一无所获

就在这时, 我灵光一闪

我可以用selenium整个屏幕点过去!

SELENIUM

selenium 是一个浏览器自动化(Web Browser Automation)的程式. 可以通过代码来对一个网页进行一些操作, 例如点击, 滑动等等

官网: https://www.seleniumhq.org/

很快就发现这个想法非常可行, 但是很智障, 我既然都自动化了, 直接搜索特定的方块点击不也可以么? 开肝!

我其实花了好久好久才真的开始, 因为我手欠的把macOS更新到了Catalina, 然后anaconda和之前安装的库啥的都没了, 其中也包括了selenium, 我一直尝试修复, 最后还是没有逃过重装conda的命运

珍惜生命, 请勿升级

正文

要使用的工具有:

  • Python 3.x (我使用的是anaconda 3.7)
  • Selenium
  • 编辑器: Atom

00

最开始肯定是先导入库

没有安装selenium的请 pip install selenium

from selenium import webdriver

01

新建一个driver, 我选择Chrome, 如果提示driver版本不兼容的话, 就需要重新下载Chrome Driver, 链接: https://chromedriver.storage.googleapis.com/index.html

from selenium import webdriver
driver = webdriver.Chrome()

02

打开网站...

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://wap.jue-huo.com/app/html/game/1to50/1to50.html")

03

循环, 从1到50, 这样之后我们就可以通过循环变量 i 来搜寻需要被点击的方块了

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://wap.jue-huo.com/app/html/game/1to50/1to50.html")
for i in range(1, 51):pass

04

这时候我们需要寻找对应的数字方块并且点击

打开网页, 我们能看到每个颜色方块的样子是

我其实对html不怎么了解, 但是大概能看出

  • 数字在div里面
  • div里面除了数字还有一个span
  • div有一个style, 值为"opacity: 1;"

span可以不用理会, 我们需要点击的内容可以用两个条件筛选出来, 分别是

  • style是 "opacity: 1"
  • 内容为 数字

这时候就会用到一个很高大上的东西叫做xpath

xpath cheat sheet: https://devhints.io/xpath

在xpath里面, 通过这两个条件筛选的语句是:

//*[@style="opacity: 1;" and text() = '{}']  # {}里面是当前数字

这时候可以把xpath另存为一个字符串变量, 但是我懒, 直接搜索了:

for i in range(1, 51):driver.find_element_by_xpath("//*[@style="opacity: 1;" and text() = '{}']".format(i))

上面这个语句返回的是一个web element

而我们要做的事情就是点他

和xpath一样, 可以重新把element赋值给一个变量, 但是我省一下行数, 直接在最后加上.click()好了

for i in range(1, 51):driver.find_element_by_xpath("//*[@style="opacity: 1;" and text() = '{}']".format(i)).click()

05

最后一步, 你们可能发现每次点完他有一个动画需要加载, 新的方块才会出来, 运气不好的话你点完25的时候26还没出现, 所以需要等待

可以判断等i到了25之后等待, 不过我就直接没点一次都等待了, 这里用的是python的time.sleep, 不过好像大佬们都建议用driver的implicit wait

完整代码:

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("http://wap.jue-huo.com/app/html/game/1to50/1to50.html")
for i in range(1, 51):driver.find_element_by_xpath("//*[@style="opacity: 1;" and text() = '{}']".format(i)).click()sleep(0.05)  # removing this may make the program run faster, but the 26th div might not be loaded yet, which will make my code crash

结尾

代码特别简单, 到这里就结束了, 一个特别简单的脚本

同时也希望这个教程能帮助你们对selenium有一个简单的了解

好了我知道实际上代码不止5行, 但是import啥的不能算的嘛

游戏脚本代码大全_如何用5行Python代码写出刷分游戏脚本!Python真牛!相关推荐

  1. 计算器百分号如何用代码实现_如何用 100 行 Python 代码实现新闻爬虫?这样可算成功?...

    每天我都要坐地铁上班,而地铁里信号差.但我希望在坐地铁的时候读些新闻,于是就写了下面这个新闻爬虫.我并没有打算做很漂亮的应用,所以只完成了原型,它可以满足我最基本的需求.其思路很简单: 找到新闻源:用 ...

  2. java编程代码大全_掌握Java编程技巧,代码重构

    代码重构在不改变软件系统外部行为的前提下,改善它的内部结构,通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性. 代码重构目标 持续纠偏和改进软件设计 随 ...

  3. python手机小游戏刷分器_如何用5行Python代码写出刷分游戏脚本!Python真牛!

    几天前, 我母上大人在我们家群里发了一条消息 一看这文案, 就知道又是一个骗流量的小游戏, 一看就让人没什么兴趣... 但是出于对我母上大人的尊(hào)重(qí)我还是点进来看了一下 游戏链接: 游 ...

  4. 2019机器学习代码实现_如何用3行代码实现任何机器学习项目

    2019机器学习代码实现 Wouldn't it be great to be able to solve complex machine learning problems quickly and ...

  5. 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目

    课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...

  6. 教你写出可读性高的Python代码

    如果有人问起 Python 程序员他们最喜欢 Python 哪一点,他们一定会提到 Python 的高可读性.确实,对于 Python 来说,其高可读性一直是这门语言设计的核心.一个不争的事实是,相对 ...

  7. python写出的程序如何给别人使用-涨姿势!这些小技巧让小白也可以写出更优雅的Python代码!...

    原标题:涨姿势!这些小技巧让小白也可以写出更优雅的Python代码! 一.前言 我前两天回答了两个Python相关的问题,收到了很多赞,从答案被收藏的情况来看,确实对不少人都很有帮助,所以我也很开心. ...

  8. [转载] Python新手写出漂亮的爬虫代码1——从html获取信息

    参考链接: Python中从用户获取多个输入 Python新手写出漂亮的爬虫代码1 初到大数据学习圈子的同学可能对爬虫都有所耳闻,会觉得是一个高大上的东西,仿佛九阳神功和乾坤大挪移一样,和别人说&qu ...

  9. 游戏脚本代码大全_代码与程序的关系是这样的

    很多人都明白代码的意思,但真正的含义还不是太理解,那么专业的代码解释是什么呢?其实它就是服务器所解析的语言,也就是说服务器将代码翻译成源代码. 代码也可以看成是程序的片段,代码可能只有一行,也有可能有 ...

  10. 游戏脚本代码大全_引擎入门 | 创建双杆射击游戏(组件 2)

    点击上方"蓝字"关注我们吧! 本期我们继续为大家进行双杆射击游戏(组件)的后续教程 学习内容 18.脚本介绍 19.为什么不用JavaScript? 20.创建第一个脚本 21.M ...

最新文章

  1. The Definitive Guide to SWT and JFace 目录
  2. 给分类添加缓存并解释StringRedisTemplate
  3. HTML与CSS基础之子元素的伪类(七)
  4. 台湾邮政历史常设展重新开幕
  5. vscode中安装webpack_VSCode下手动构建webpack项目(示例代码)
  6. Python装饰器(二)
  7. 使用zigbee的协议栈进行协调器路由器终端初始化
  8. linux DTS介绍
  9. TensorFlow 学习初步-环境搭建
  10. 如何使用C#压缩文件及注意的问题!
  11. 定时任务执行框架quartz之时间配置参考以及Demo
  12. ApacheCN Python 译文集 20211108 更新
  13. 控制系统matlab仿真,控制系统MATLAB仿真作业
  14. 台式计算机的无线上网卡多少线,台式电脑可以用无线上网卡上网吗
  15. Qt如何获取外网IP地址
  16. 未转变者服务器bug,未转变者攻略 unturned无敌BUG说明
  17. 十秒清理电脑垃圾文件
  18. 华为云服务-应用部署2-创建环境到创建应用
  19. 计算机网络求校验码,计算机网络课程设计校验码的计算
  20. 如何制作校园平面图及路线导图

热门文章

  1. Linux电源管理--PM QoS
  2. 基于OpenCv的人脸识别系统设计
  3. java doc转mht_Word文档格式doc转为mht.doc
  4. 二阶系统阶跃响应实验_二阶系统阶跃响应实验报告
  5. 腾讯翻译君在线翻译怎么翻译整个文件_Word文档翻译:分享下面几种方法
  6. React中Video播放器的使用
  7. react native 抖音视频列表页
  8. 官网jdk8,jdk11下载时需要登录Oracle账号的问题解决
  9. Hilbert 变换与瞬时频率
  10. lingo与matlab转换,请教lingo与matlab