利用Python抢回在蚂蚁森林把逝去的能量

目录

4 Python——uiautomator2库安装

1 蚂蚁森林简介

蚂蚁森林是一项旨在带动公众低碳减排的公益项目,每个人的低碳行为在蚂蚁森林里可计为"绿色能量"。"绿色能量"积累到一定程度,就可以用手机申请在生态亟需修复的地区种下 一棵真树 ,或者在生物多样性亟需保护的地区“认领”保护权益。

蚂蚁森林在各地的生态修复项目,是由蚂蚁集团向公益机构捐赠资金,由公益机构组织种植养护等具体工作,并由当地林业部门进行业务监管,所有项目都有对应的捐赠协议、验收报告。 [23]

2019年9月19日,中国“蚂蚁森林”项目获 联合国 “ 地球卫士奖 ”

据生态环境部2021年“全国低碳日”主场活动公布的数据:蚂蚁森林从2016年上线5年来,已累计带动超过6.13亿人参与低碳生活,产生“绿色能量”2000多万吨。

为了激励社会公众的低碳生活,5年来蚂蚁森林参与到全国11个省份的生态修复工作,累计种下3.26亿棵树,其中在甘肃、内蒙古均超过1亿棵。 同时,蚂蚁森林还在全国10个省份设立了18个公益保护地,守护野生动植物1500多种。通过在各地的生态环保项目,蚂蚁森林累计创造了种植、养护、巡护等238万人次的绿色就业机会,为当地群众带来劳动增收3.5亿元。

蚂蚁集团公开声明:每年投入蚂蚁森林数亿的费用属于纯公益捐赠。蚂蚁森林种下的树一经捐出,就属于国家、属于社会,未来如果这些树木产生碳汇,将全部用于公益。蚂蚁森林从未参与过碳交易。 如果蚂蚁森林里记录的个人碳减排量未来能交易,产生的所有收益将属于用户个人,不属于蚂蚁森林

2 逝川长叹

在以前,容易忽略支护宝的我来说,很多能量被好友抢来,然后一直想找一个机会把失去的能量大范围的抢回来,苦于代码能力有限,一直没落实,最近很想弄,不在逝川长叹,也让别人羡慕我。

干货主要有:

① 200 多本 Python 电子书(和经典的书籍)应该有

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且可靠的练手项目及源码)

④ Python基础入门、爬虫、网络开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

私信小编01即可获取大量Python学习资源

3 结果展示

过几分钟再偷,赚大了,哈哈哈!

4 Python——uiautomator2库安装

UiAutomator是Google提供的用来做安卓自动化测试的一个Java库,可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作。Uiautomator2是在Uiautomator之上的python的接口封装,简单来说 Uiautomator2可以看到手机当前屏幕上有哪些控件,其坐标是啥,并且还可以模拟点击。

下面我们讲讲安装uiautomator2库的方法(我常用的)。

5 Python代码实现

#=======导入相关库==========

import numpy as np

import matplotlib.pyplot as plt

import matplotlib as mpl

mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定认字体

mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

import matplotlib;

matplotlib.use('TkAgg')

import uiautomator2 as u2

import time

import random

#=======# 有线连接,手机需要插电脑上,支付宝完全启动======

d = u2.connect()

# d.app_stop("com.eg.android.AlipayGphone")

print("打开支付宝")

d.app_start("com.eg.android.AlipayGphone")

time.sleep(2) ## 休眠2s等待支付宝完全启动

#==========进入蚂蚁森林=================

print("打开蚂蚁森林,等待5s……")

d(text="蚂蚁森林").click()

time.sleep(5) ## 我手机比较卡,进入蚂蚁森林后还需要几秒钟才能完全加载完

#=========收集能量===============

def collectEnergy(cnt):

print("开始第%d次偷能量!" % cnt)

#===开始扫描点击有能力出现的区域===

for x in range(150,1000,150):

for y in range(600,900,150):

d.long_click(x + random.randint(10,20), y + random.randint(10,20), 0.1)

time.sleep(0.01)

if cnt != 1:

d.click(536,1816)

cnt = 1

while True:

collectEnergy(cnt)

a = d.xpath("//*[@resource-id='J_tree_dialog_wrap']").get().bounds

d.click(1000, a[3]-80) # 找能量按钮的坐标

#===如果页面出现了“返回我的森林”说明已经没有能量可偷了,结束===

if d.xpath('//*[@text="返回我的森林"]').click_exists(timeout=2.0):

break

cnt += 1

print("###结束###")

d.app_stop("com.eg.android.AlipayGphone") # 退出支付宝

相关文章

在前一篇博客中我们介绍了加侧旋的乒乓球弧圈技术的模拟,本...
在近期conda的版本更新中,有可能会删除路径下的_sysconfigd...
本文主要展示了一些lambda表达式的使用示例,通过这些示例,...
本文通过对比Jax和Numpy计算Normalized Hamming Distance的过...
我们知道GPU加速在可并行化程度比较高的算法中,能够发挥出比...
Numpy这个库在Python编程中非常的常用,不仅在性能上补足了P...