AI智能
改变未来

用 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 = 110end_x = 940start_y = 460end_y = 880for 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小二 后台回复 201116 获取。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 用 Python 实现定时自动化收取蚂蚁森林能量