必威体育Betway必威体育官网
当前位置:首页 > IT技术

selenium制作——Q宠大乐斗辅助脚本

时间:2019-06-23 09:41:03来源:IT技术作者:seo实验室小编阅读:93次「手机版」
 

q宠大乐斗外挂

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

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

可能很多90后都玩过乐斗Ⅱ。但是很遗憾,今天的主角不是它,而是它的兄弟——“Q宠大乐斗”。今天分享的是:如何使用前几天分享的selenium的奇淫技巧,让“Q宠大乐斗”自动运行,自动打游戏。

具体步骤

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

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

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

注意事项:

  1. 因为等级原因,有一些功能可能对低等级不开放,所以这个游戏需要“私人订制”
  2. 有一些奖励是需要等到了一定的活跃度才可以完领取,所以需要一定的游戏策略,否则就需要在程序中进行多次判断

代码书写

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

登录模块:

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

from time import sleep
from selenium import webdriver


URL = 'http://ui.ptlogin2.qq.com/cgi-bin/login?APPid=614038002&style=9&s_url=http%3A%2F%2Fdld.qzapp.z.qq.com%2Fqpet%2Fcgi-bin%2Fphonepk%3Fcmd%3Dindex%26channel%3D0'
username = '账号'
pwd = '密码'

driver = webdriver.Chrome()
driver.implicitly_wait(5) #设置隐式等待,5秒

#登录模块
def login(url, username, pwd):
    driver.get(url)
    driver.find_element_by_id('u').clear()
    driver.find_element_by_id('u').send_keys(username)
    driver.find_element_by_id('p').clear()
    driver.find_element_by_id('p').send_keys(pwd)
    driver.find_element_by_id('go').click()
    sleep(2)

#入口函数
if __name__ == "__main__":
    login(URL, username, pwd)  # 登录

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

其他模块

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

每日奖励模块:

from selenium.common.exceptions import NoSuchElementException

# 每日奖励
def mei_ri_jing_yan():
    try:
        driver.find_element_by_link_text('每日奖励').click()
    except NoSuchElementException:
        print('没有找到每日奖励')
    sleep(1)
    try:
        for i in range(0, 2):
            driver.find_element_by_xpath('//*[@id="id"]/p[1]/a[2]').click()
            sleep(1)
    except NoSuchElementException:
        print('没有找到每日奖励领取按钮')
    driver.find_element_by_link_text('返回大乐斗首页').click()

乐斗好友模块:

# 乐斗好友
def flight():
    for i in range(6, 16):
        myfriend = driver.find_element_by_link_text('好友')
        myfriend.click()
        driver.find_element_by_link_text("下页").click()
        sleep(1)
        driver.find_element_by_xpath(' // *[ @ id = "id"] / a[{}]'.format(i)).click()
        sleep(1)
        driver.find_element_by_link_text('返回大乐斗首页').click()

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

计划任务

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

最后

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

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

github地址:点击跳转

相关阅读

【Selenium_Web_Xpath定位】12306火车票官方订票网站,

#!/usr/bin/env/python3 # -*- coding:utf-8 -*- ''' Author:leo Date&Time:2019-07-27 and 12:22 FileName:12306_成都到重庆 De

Selenium之AutoIt3学习日记

前提:使用upfile.html模拟测试文件上传功能<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><

selenium抓取卡推漫画--狐妖小红娘改进版

1、流程框架 1.1、获取配置文件信息 获取配置文件信息包括存储文件的电脑本地路径、上次抓取的漫画某话序号以及其已下载的图

selenium用法详解

selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8

【selenium】126官网邮箱登录

【selenium】126官网邮箱登录 模拟场景说明:访问126邮箱官网,输入用户名、密码,点击登录 难点说明:因为126首页的登录框在一个iframe

分享到:

栏目导航

推荐阅读

热门阅读