游戏脚本代码⼤全_如何⽤5⾏Python代码写出刷分游戏脚
本!Python真⽜!
⼏天前, 我母上⼤⼈在我们家⾥发了⼀条消息
⼀看这⽂案, 就知道⼜是⼀个骗流量的⼩游戏, ⼀看就让⼈没什么兴趣... 但是出于对我母上⼤⼈的尊(hào)重(qí)我还是点进来看了⼀下游戏链接:
游戏规则⼗分简单, 按顺序从1点到50
在25或者之前, 点完的数字⽅块会变成⼀个25之后的, ⽐如1点完可能变成37, 然后2变成41这样⼦... 然后Sushi就开始了疯狂刷分
难啊!
然⽽我怎么能被这种⼩游戏难倒, 怎么都得进30秒吧
⼀定是我不适应⼿机, ⽤电脑试试!
不可以!
"正常⼈, 做正常事"... 我的智商仿佛受到了歧视! 不可以!
多次尝试之后我发现这个游戏在你点错的时候没有任何惩罚, 继续点下去就好了, 于是乎我就开始扇我⼿机⽿光
结果是啥都按不到, 玩了10多秒还没按到3...
很快我就开始寻能全⾯按到屏幕的物品, ⼀⽆所获
就在这时, 我灵光⼀闪
我可以⽤selenium整个屏幕点过去!
SELENIUM
selenium 是⼀个浏览器⾃动化(Web Browser Automation)的程式. 可以通过代码来对⼀个⽹页进⾏⼀些操作, 例如点击, 滑动等等
开肝!
很快就发现这个想法⾮常可⾏, 但是很智障, 我既然都⾃动化了, 直接搜索特定的⽅块点击不也可以么? 开肝!
我其实花了好久好久才真的开始, 因为我⼿⽋的把macOS更新到了Catalina, 然后anaconda和之前安装的库啥的都没了, 其中也包括了selenium, 我⼀直尝试修复, 最后还是没有逃过重装conda的命运
珍惜⽣命, 请勿升级
正⽂
要使⽤的⼯具有:
Python 3.x (我使⽤的是anaconda 3.7)
Selenium
编辑器: Atom
00
最开始肯定是先导⼊库
没有安装selenium的请 pip install selenium
from selenium import webdriver
01
from selenium import webdriver
driver = webdriver.Chrome()
02
打开⽹站...
from selenium import webdriver
driver = webdriver.Chrome()
<("wap.jue-huo/app/html/game/1to50/1to50.html")
03
循环, 从1到50, 这样之后我们就可以通过循环变量 i 来搜寻需要被点击的⽅块了
from selenium import webdriver
driver = webdriver.Chrome()
<("wap.jue-huo/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⾥⾯, 通过这两个条件筛选的语句是:
//*[@ and text() = '{}'] # {}⾥⾯是当前数字
这时候可以把xpath另存为⼀个字符串变量, 但是我懒, 直接搜索了:
for i in range(1, 51):
driver.find_element_by_xpath("//*[@ and text() = '{}']".format(i))
上⾯这个语句返回的是⼀个web element
⽽我们要做的事情就是点他
和xpath⼀样, 可以重新把element赋值给⼀个变量, 但是我省⼀下⾏数, 直接在最后加上.click()好了
for i in range(1, 51):
python新手代码大全pdfdriver.find_element_by_xpath("//*[@ 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()
<("wap.jue-huo/app/html/game/1to50/1to50.html")
for i in range(1, 51):
driver.find_element_by_xpath("//*[@ 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啥的不能算的嘛
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论