Python自動化完成tb喵幣任務(wù)的操作方法
2019雙十一,tb推出了新的活動,商店喵幣,看了一下每天都有幾個任務(wù)來領(lǐng)取喵幣,從而升級店鋪賺錢,然而我既想賺紅包又不想干苦力,遂使用python來進行手機自動化操作,目測全網(wǎng)首發(fā)!
用到的庫:
re
os
time
思路:
- 下載adb命令安裝包
- 打開手機開發(fā)者選項(點擊系統(tǒng)設(shè)置,連點5次系統(tǒng)版本,即可在輔助功能或其他選項中找到開發(fā)者選項,此功能無害,可不必關(guān)閉)
- 在開發(fā)者選項中找到USB調(diào)試打開(反是有USB字樣選項的全部同意,有提示風(fēng)險也同意,PS:自己操作雞毛風(fēng)險沒有,在一些商廈的有免費充電樁,若此充電樁提示請求USB調(diào)試請拒絕,此行為是風(fēng)險操作,有可能獲取隱私?。?/li>
- 手機連接電腦
- 5. 將僅限USB充電調(diào)至MIDI模式(部分手機有,任務(wù)欄下拉) (部分手機在僅充電模式下無法連接)
- 調(diào)至tb喵幣做任務(wù)界面
- 將.py文件移動至adb文件夾目錄下
- 在開發(fā)者界面下打開指針位置
- 填入X,Y坐標
- 運行腳本
import os,re
import time
print('-----ctrl+c終止程序-----------')
task=int(input('請輸入任務(wù)個數(shù):'))
chose=int(input('請選擇自定位[1]或手動輸入[2]:'))
print('author:劉秉哲')
list=[]
list1=[]
def go(x,y):
for i in range(task+1):
os.system('adb shell input tap {} {}'.format(x,y))#觸摸店鋪按鈕
print('---開始任務(wù)---')
time.sleep(4)
os.system('adb shell input tap {} {}'.format(1,1))#模擬滑動界面
print('---等待25秒---')
time.sleep(25)
print('---領(lǐng)取完成---')
time.sleep(4)
os.system('adb shell input keyevent 4')
time.sleep(4)
#os.system('adb shell input tap 518 2202')
print('第{}任務(wù)領(lǐng)取完成'.format(i+1))
print('______________________')
def go_2():
try:
print('獲取坐標中')
file = os.listdir('.')
if os.path.exists('123.txt'):
#if (i.endswith('.txt')):#判斷當(dāng)前文件是否有123.txt
c=open('123.txt',encoding='UTF-8')
a=c.read()
#正則尋找去進店的按鈕位置
d=re.search('<node index="2" text="去進店"(.*?)/>',a).groups()
f=re.search(' bounds="(.*?)"',str(d)).groups()
g=re.search('\[(.*?)\]',f[0]).group(1)
list.append(g.split(','))#將坐標添加到列表
else:
try:#這里兩次獲取xml,以防獲取的第一個為安卓非IDE情況下的xml
os.system('adb shell uiautomator dump /sdcard/ui.xml')
time.sleep(2)
os.system('adb shell uiautomator dump /sdcard/ui.xml')
os.system('adb pull /sdcard/ui.xml 123.txt')
size=get_FileSize('123.txt')#123.txt是淘寶喵幣任務(wù)頁面的布局
if size>=0.03:#第一次獲取ui會出現(xiàn)文件非淘寶苗幣的xml
file = os.listdir('.')
c=open('123.txt',encoding='UTF-8')
a=c.read()
d=re.search('<node index="2" text="去進店"(.*?)/>',a).groups()
f=re.search(' bounds="(.*?)"',str(d)).groups()
g=re.search('\[(.*?)\]',f[0]).group(1)
list.append(g.split(','))
print('獲取成功')
else:
print('xml文件錯誤正在重新下載,請勿翻動手機界面')
os.remove('123.txt')
go_2()
except:
print('錯誤')
go_2()
except:
print('error,正在重新獲取')
def get_FileSize(filePath):
fsize = os.path.getsize(filePath)
fsize = fsize/float(1024 * 1024)
return round(fsize, 2)
if chose==1:
try:
go_2()
print("當(dāng)前坐標:{},{}".format(list[0][0],list[0][1]))
go(int(list[0][0])+20,int(list[0][1])+20)
except:
print('error')
if chose==2:
x=int(input('請輸入任務(wù)X坐標:'))
y=int(input('請輸入任務(wù)y坐標:'))
go(x,y)
PS:代碼部分命名倉促,見諒。
1 腳本1功能自動獲取下X,Y坐標,大概率成功,小概率需要自行通過2功能修改。
2 腳本還有不足之處,歡迎指出。
3 123.txt是當(dāng)前淘寶喵幣頁面的安卓布局,里面有當(dāng)前的布局及其按鈕位置 。
4 當(dāng)你想為另一臺手機在同一臺電腦上運行的時候,請手動刪除123.txt,手機型 號不同,布局不同。
問題與難點:
1 實現(xiàn)tb按鈕的自定位
2 小幾率出現(xiàn)返回任務(wù)界面 20個任務(wù)會消失(網(wǎng)速和手機性能影響)
3 部分手機會出現(xiàn)坐標定位后,手機無反應(yīng),請根據(jù)提示的當(dāng)前坐標,選擇2功能,然后將坐標數(shù)增減10進行調(diào)試
4 error: device not found :手機沒有正確連接至電腦(檢查adb)
5 檢查當(dāng)前文件夾下的123.TXT 的大小是否在30KB以上,在10KB一下說明獲取失敗,刪除123.txt,重新打開軟件獲取(未知bug)
6 ERROR: null root node returned by UiTestAutomationBridge. 安卓P以上的bug 請多次開關(guān)程序
7 腳本不可與adb文件夾(platform-tools)分離,否則無法運行!
8 出現(xiàn)閃退請多次開關(guān)程序


2功能可以用于20個任務(wù)下面的其他瀏覽任務(wù),坐標可在123.txt中找到也可在開發(fā)者指針位置定位,這里不在贅述。
這里也有封裝成exe的,可直接使用,歡迎體驗:
http://xiazai.jb51.net/201910/yuanma/platform-tools.rar
adb組件單獨下載:
http://xiazai.jb51.net/201910/yuanma/platform_adb.rar
總結(jié)
以上所述是小編給大家介紹的Python自動化完成tb喵幣任務(wù)操作方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- 使用Python自動化Microsoft Excel和Word的操作方法
- python 自動化偷懶的四個實用操作
- python自動化辦公操作PPT的實現(xiàn)
- python+excel接口自動化獲取token并作為請求參數(shù)進行傳參操作
- Python word文本自動化操作實現(xiàn)方法解析
- Python自動化測試中yaml文件讀取操作
- Python自動化操作實現(xiàn)圖例繪制
- Python鍵鼠操作自動化庫PyAutoGUI簡介(小結(jié))
- Python如何操作office實現(xiàn)自動化及win32com.client的運用
- 利用Python自動化操作AutoCAD的實現(xiàn)
- python+Selenium自動化測試——輸入,點擊操作
- python自動化測試之異常及日志操作實例分析
- python操作excel讓工作自動化
- Python自動化運維之Ansible定義主機與組規(guī)則操作詳解
- selenium+python自動化測試之使用webdriver操作瀏覽器的方法
- Python多線程應(yīng)用于自動化測試操作示例
- 十個Python自動化常用操作,即拿即用
相關(guān)文章
python flask中動態(tài)URL規(guī)則詳解
今天小編就為大家分享一篇python flask中動態(tài)URL規(guī)則詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python簡單實現(xiàn)兩個任意字符串乘積的方法示例
這篇文章主要介紹了Python簡單實現(xiàn)兩個任意字符串乘積的方法,結(jié)合實例形式分析了Python針對字符串、列表的切片、轉(zhuǎn)換、遍歷等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
詳解python如何正確使用時間戳,日期,時間,時區(qū)
這篇文章主要為大家介紹了如何在python中正確使用時間戳,日期,時間,時區(qū),文中通過簡單的示例進行了詳細介紹,希望對大家有一定的幫助2024-11-11
PyTorch中torch.utils.data.DataLoader實例詳解
torch.utils.data.DataLoader主要是對數(shù)據(jù)進行batch的劃分,下面這篇文章主要給大家介紹了關(guān)于PyTorch中torch.utils.data.DataLoader的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09
使用python實現(xiàn)CNN-GRU故障診斷的代碼示例
這篇文章主要給大家詳細介紹了如何使用python實現(xiàn)CNN-GRU故障診斷,文章中有詳細的代碼示例,具有一定的參考價值,需要的朋友可以參考下2023-07-07
Python 從一個文件中調(diào)用另一個文件的類方法
今天小編就為大家分享一篇Python 從一個文件中調(diào)用另一個文件的類方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Django的數(shù)據(jù)模型訪問多對多鍵值的方法
這篇文章主要介紹了Django的數(shù)據(jù)模型訪問多對多鍵值的方法,Django是Python豐富多彩的web框架中最具人氣的一個,需要的朋友可以參考下2015-07-07

