首頁 > 軟體

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

2022-03-03 19:01:46

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螞蟻森林能量內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com