手把手教你收取蚂蚁森林能量
17coding技术博客
共 2593字,需浏览 6分钟
· 2021-02-18
文 | 某某白米饭
来源:Python 技术「ID: pythonall」
支付宝集 5 福让小编打开了尘封已久的蚂蚁森林小程序,它刚出来那会儿小编也算是一个重度用户,看着一直被偷的能量总想以德服人。今天就用 Python + Appium 写一个自动收取能量的脚本,完成之后再也没人能从小编手上将能量偷走了。
启动入口
还不会使用 Appium 的小伙伴可以先看看本公众号上的《解放双手,提高生产力,这款神器你值得拥有》学习和使用 Appium。
下面代码是支付宝的配置文件:
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.support import expected_conditions as EC
desired_capabilities = {
'platformName': 'Android', # 操作系统
'deviceName': '2a254a02', # 设备 ID
'platformVersion': '10.0.10', # 设备版本号,在手机设置中查看
'appPackage': 'com.eg.android.AlipayGphone', # app 包名
'appActivity': 'AlipayLogin', # app 启动时主 Activity
'noReset': True # 是否保留 session 信息 避免重新登录
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities)
# 设置等待超时时间
wait = WebDriverWait(driver, 60)
点击进入蚂蚁森林
支付宝上的蚂蚁森林的图标按钮位置每个人按照各自的习惯都不相同,小编的图标位置在全部-->最近使用
里面,可以用蚂蚁森林
文字找到图标并点击。
# 点击全部图标
wait.until(EC.element_to_be_clickable((By.ID, 'com.alipay.android.phone.openplatform:id/more_app_icon'))).click()
# 找到蚂蚁森林
wait.until(EC.element_to_be_clickable((By.XPATH, '//android.widget.TextView[contains(@text, "蚂蚁森林")]'))).click()
time.sleep(1)
收集能量
在蚂蚁森林中并不能通过用 id 的方式定位到能量球,只能用在能量球可能出现的区域用坐标点击,start_x,end_x,start_y,end_y 是这个区域左上角和右下角的坐标位置。
# 获取手机屏幕宽高
width = int(driver.get_window_size()['width'])
height = int(driver.get_window_size()['height'])
# 收取能量
def collect_energy(driver, width, height):
# 能量球可能出现的区域坐标
start_x = 150
end_x = 900
start_y = 540
end_y = 900
for x in range(start_x, end_x, 50):
for y in range(start_y, end_y, 50):
x_scale = int((int(x) / width) * width)
y_scale = int((int(y) / height) * height)
# 点击指定坐标
TouchAction(driver).press(x=x_scale, y=y_scale).release().perform()
print('能量收取完毕')
收取好友能量
自己的能量收取完之后,点击 找能量
进入好友的蚂蚁森林收取好友的能量,直到出现返回我的森林
页面。
def search_energy(driver, width, height):
x = int((int(1000) / width) * width)
y = int((int(1550) / height) * height)
# 点击指定坐标
TouchAction(driver).press(x=x, y=y).release().perform()
time.sleep(1)
is_collected = is_element_exist_by_xpath(driver, '//android.widget.Button[contains(@text, "返回我的森林")]')
if is_collected:
print('能量全部收集完毕')
return
collect_energy(driver, width, height)
search_energy(driver, width, height)
总结
用 Appium 很简单的就将蚂蚁森林的能量球自动化了,看完这篇文章后希望小伙伴可以活学活用将其他 APP 应用中的重复的操作也自动化,省事又省力。
-END-
评论
教你如何在 Linux 系统中查看系统日志
转自:开源LinuxLinux 系统提供了强大的日志功能,可以记录系统和应用程序的各种事件和错误信息。系统日志对于故障排除和性能监控非常重要。一、使用命令行工具查看系统日志1. 使用 journalctl 命令查看系统日志:journalctl 命令是 systemd 日志管理器的客户端工具,它可以
良许Linux
0
从0到1 | 手把手教你部署 AI 大模型
点击蓝字 关注我们Build with AI 南京活动来啦!现已开启报名!跟随技术老师的脚步,利用一个下午的时间,部署 AI 大模型!席位有限,速速报名~联合主办方现场福利参会现场可领取夜光运动手环现场完成挑战即可获得运动时尚挎包报名方式请扫码填写问卷报名,名额有限,先到先得!活动信息「活动」:从0
Datawhale
10
实战|手把手教你用Python爬虫(附详细源码)
作者通常周更,为了不错过更新,请点击上方“ Python碎片 ”,“ 星标 ”公众号 什么是爬虫? 实践来源于理论,做爬虫前肯定要先了解相关的规则和原理,要知道互联网可不是法外之地,你一顿爬虫骚操作搞不好哪天就... 首...
Python 碎片
0
教你一招,保护你的项目代码!
大家好,我是程序员鱼皮,今天分享一个团队开发的小知识。团队开发时,我们一般会使用 GitHub 等代码托管平台来维护项目的代码。比如我们公司的每个项目,都在 GitHub 上有对应的代码库。GitHub 上的代码库,可以设...
程序员鱼皮
0
蚂蚁金服AIGC产品经理--上岸面经
这是求职产品经理系列的第 247 篇文章 ? 背景: 211本科,6年产品经理工作经验,之前做过的项目比较杂,电商,社交,广告等方向都有涉猎。 非常看好AIGC未来的发展,所以从2023年低开始准备相关的求职,结合最近一款...
薛老板产品派
0
手把手教你做AI产品经理
ChatGPT的爆火,让人看到了新的生产力发展方向,微软也因此放弃了元宇宙,ALL In AI,各大巨头和资本也陆续进入,誓要打造中国版的ChatGPT,并觉得人工智能可以改写现有的程序应用场景,带来新的生产力变革。一位长...
产品刘
0
手把手教学在云上部署一个twitter
简介 一个全部代码开源,学习云环境开发应用的bootcamp,成果是一个mini版的推。 项目内容 1. 准备工作 注册aws账号,多重认证保护账号安全,设置账单报警和预算。 2. 基础前后端功能+本地容器化 flask后端/react前...
寒冰雪
0
手把手教你 Java 文件断点下载
来源:juejin.cn/post/7026372482110079012 ? 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利 全栈前后端分离博客项目 1.0 版本完结啦,2.0 正在更新中..., ...
小哈学Java
0