搜索
简帛阁>技术文章>用Python实现定时自动化收取蚂蚁森林能量,再也不用担心忘记被人偷了

用Python实现定时自动化收取蚂蚁森林能量,再也不用担心忘记被人偷了

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于腾讯云 作者:Python编程与实战

1. 概述

提到蚂蚁森林,大家应该都知道,你是否有因忘记收取能量而被好友收取的经历呢?

如果你不是蚂蚁森林重度用户,被别人收取了能量可能对你来说没什么。

但如果你是蚂蚁森林重度用户,遇到能量被偷 …

本文我们来看一下如何使用 Python + Appium 实现定时自动化收取蚂蚁森林能量。

2.环境

本文主要环境如下:

  • Win7
  • 小米5s
  • Python3.7
  • Appium1.5
  • 支付宝10.2.6.7010

如果对环境搭建不熟悉的话,可以看一下:Python + Appium 自动化操作微信入门和我用 Python 找出了删除我微信的所有人并将他们自动化删除了。

3. 实现

功能实现的基本思路为:

打开支付宝进入蚂蚁森林,收取自己的能量
收取完自己能量后,点击找能量进入好友蚂蚁森林,收取好友能量,以此类推

接下来我们看一下主要代码实现。

参数配置代码实现如下:

desired_caps = {
    "platformName": "Android", # 系统
    "platformVersion": "8.0.0", # 系统版本号
    "deviceName": "m5s", # 设备名
    "appPackage": "com.eg.android.AlipayGphone", # 包名
    "appActivity": "AlipayLogin", # app 启动时主 Activity
    'noReset': True # 保留 session 信息,可以避免重新登录
}

 

通常大家都会将蚂蚁森林放在支付宝首页,此时我们打开支付宝后直接点击蚂蚁森林选项即可进入。

代码实现如下:

driver.find_elements_by_id('com.alipay.android.phone.openplatform:id/home_app_view')[10].click()

 

进入自己蚂蚁森林之后,开始收取自己的能量,因为新版支付宝不能定位能量球元素了,所以我们需要在能量球可能出现的区域实现点击。收取能量的代码实现如下:

# 收取能量
def collect_energy(driver):
    print('开始收取能量')
    # 获取手机屏幕宽高
    width = int(driver.get_window_size()['width'])
    height = int(driver.get_window_size()['height'])
    # 能量球可能出现的区域坐标
    start_x = 110
    end_x = 940
    start_y = 460
    end_y = 880
    for i in range(start_y, end_y, 80):
        for j in range(start_x, end_x, 80):
            tap_x1 = int((int(j) / width) * width)
            tap_y1 = int((int(i) / height) * height)
            # 点击指定坐标
            driver.tap([(tap_x1, tap_y1), (tap_x1, tap_y1)], 1000)
    print('能量收取完毕')

自己能量收取完毕之后,点击找能量进入好友蚂蚁森林继续收取能量,代码实现如下:

# 找能量
def search_energy(driver):
    print('找能量,收取好友能量')
    time.sleep(3)
    # 点击找能量
    driver.tap([(1000, 1520), (1080, 1580)], 1000)
    time.sleep(3)
    # 收取好友能量
    collect_energy(driver)
    time.sleep(3)
    # 收取完毕继续找能量
    search_energy(driver)

 

能量收取的功能实现了之后,我们使用定时任务实现定时收取即可,下面看一下定时任务的实现。

定时任务的实现我们使用 apscheduler 组件,使用之前需执行 pip install apscheduler 装一下。

定时任务的代码实现如下:

scheduler = BlockingScheduler()
# collect_main:定时执行的方法
scheduler.add_job(collect_main, 'cron', hour=20, minute=23, second=20)
try:
    scheduler.start()
except (KeyboardInterrupt, SystemExit):
    pass

 

到此,我们利用 Python + Appium 实现定时自动化收取蚂蚁森林能量的工作就完成了。

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理以下文章来源于腾讯云作者:Python编程与实战1概述提到蚂蚁森林,大家应该都知道,
目录1蚂蚁森林简介2逝川长叹3结果展示4Pythonuiautomator2库安装5Python代码实现1蚂蚁森林简介蚂蚁森林是一项旨在带动公众低碳减排的公益项目,每个人的低碳行为在蚂蚁森林里可计为绿
1、首先我们需要下载一个ADBDRIVERINSTALL驱动安装。需要的可以到我的资源那里下载2、手机进入开发者模式,usb调试下面选择“仅为充电”开始调试,插入usb线,手机把(usb调试)打开3、
项目场景:将文件中的内容,与输入的字符进行比较,相等则将表示该文件中有此内容,不相等表示没有该内容,则将输入的字符串保存到该文件。问题描述:输入一个文件中存在的字符串,但是还是将输入的字符串保存到文件
autoJS写的能量收取脚本软件说一下达到的效果,把蚂蚁森林按钮要设置在常用应用中先收取自己主页的能量,然后进入排行榜收集好友的能量中途可以按下音量下键提前结束脚本运行改改测测基本上现在运行完美的
录问题来源配置国内镜像源问题来源今天在使用pipinstallxlutils安装xlutils包的时候,一直出现该错误ReadTimeoutError:HTTPSConnectionPool(ho
言为了提高效率,我们在平时工作中常会用到一些Python的效率工具,Python作为比较老的编程语言,它可以实现日常工作的各种自动化。为了更便利的开发项目,这里给大家推荐几个Python的效率工具。
目录一、Maven设置二、默认设置三、IDEA新工程默认设置一、Maven设置当我们下载安装Maven之后,如果不修改maven中setting文件的。那默认情况下,Maven远程中央仓库地址为是个国
近日有消息放出,国服原跨2和跨8将要更新全新跨区计划,除了结婚系统和工会系统外,其他功能全跨区互通,而其他跨区的更新计划预计将在12月28日开启。全新更新计划意味着什么呢?这一切对我们未来的游戏有何影
一、效果图二、必要工具Python37pycharm2019再然后配置它的文件,设置游戏屏幕的大小,图片路径。代码如下'''配置文件'''importos'''FPS'''FPS40'''游戏屏幕大小