利用Python搶回在螞蟻森林逝去的能量(實現代碼)

1 螞蟻森林簡介

螞蟻森林是一項旨在帶動公眾低碳減排的公益項目,每個人的低碳行為在螞蟻森林裡可計為"綠色能量"。"綠色能量"積累到一定程度,就可以用手機申請在生態亟需修復的地區種下一棵真樹,或者在生物多樣性亟需保護的地區“認領”保護權益。

螞蟻森林在各地的生態修復項目,是由螞蟻集團向公益機構捐贈資金,由公益機構組織種植養護等具體工作,並由當地林業部門進行業務監管,所有項目都有對應的捐贈協議、驗收報告。 [23]

2019年9月19日,中國“螞蟻森林”項目獲 聯合國 “ 地球衛士獎 ”

據生態環境部2021年“全國低碳日”主場活動公佈的數據:螞蟻森林從2016年上線5年來,已累計帶動超過6.13億人參與低碳生活,產生“綠色能量”2000多萬噸。

為瞭激勵社會公眾的低碳生活,5年來螞蟻森林參與到全國11個省份的生態修復工作,累計種下3.26億棵樹,其中在甘肅、內蒙古均超過1億棵。 同時,螞蟻森林還在全國10個省份設立瞭18個公益保護地,守護野生動植物1500多種。通過在各地的生態環保項目,螞蟻森林累計創造瞭種植、養護、巡護等238萬人次的綠色就業機會,為當地群眾帶來勞動增收3.5億元。

螞蟻集團公開聲明:每年投入螞蟻森林數億的費用屬於純公益捐贈。螞蟻森林種下的樹一經捐出,就屬於國傢、屬於社會,未來如果這些樹木產生碳匯,將全部用於公益。螞蟻森林從未參與過碳交易。 如果螞蟻森林裡記錄的個人碳減排量未來能交易,產生的所有收益將屬於用戶個人,不屬於螞蟻森林。

2 逝川長嘆

在以前,容易忽略支護寶的我來說,很多能量被好友搶來,然後一直想找一個機會把失去的能量大范圍的搶回來,苦於代碼能力有限,一直沒落實,最近很想弄,不在逝川長嘆,也讓別人羨慕我。

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") # 退出支付寶

到此這篇關於利用Python搶回在螞蟻森林逝去的能量的文章就介紹到這瞭,更多相關Python螞蟻森林能量內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: