出售本站【域名】【外链】

首页 AI人工智能软件 qqAI人工智能 微信AI人工智能 抖音AI人工智能 快手AI人工智能 云控系统 手机AI人工智能

Python控制手机实现抖音极速版快手极速版自动刷金币

2023-01-04

一、拆置Python须要的包

https://blog.csdn.net/FG24151110876/article/details/103867863

二、给手机拆置ATX控制软件 pip install uiautomator2

https://blog.csdn.net/FG24151110876/article/details/103868335

三、代码

3.1、基于图片识别,通过代码对手机停行截图,裁切要识其它位置

3.2、步调每20分钟停行一次抖音宝箱告皂,而后随机从头启动抖音极速版或快手极速版APP继续刷视频

 

# -*- coding: utf-8 -*- """ Created on Tue Feb 23 16:58:44 2021 @author: 抖音极速版邀请码:872481738 快手极速版邀请码:767 160 108 """ import uiautomator2 as u2 import time import random import re import os from datetime import datetime import aircv as ac # pip install aircv # No module named 'cv2' pip install opencv-python class 智能手机(): ''' 智能手机类 ''' def __init__(self,ip): '''初始化''' # ip='192.168.3.145' # d = u2.connect(ip) self.ip=ip self.task_frequency=60*20 #任务频次,20分钟 self.average_sleep=8 # 滑动手机间隔等候均匀光阳(秒) self.i=0 # 初始化循环次数 self.flag_sign=1# 签到标签 self.ad_time=45 # 告皂时长 self.temp_ad_time=45 #识图久时告皂 self.abnormal_time=0 #异样泯灭光阳 def 接管参数(self): '''接管步调参数''' try: self.next_time=60*eval(input('\n请输入距离下一次任务另有几多多分钟?\n:')) self.日志('已乐成接管参数设置!','距离下一次任务:','{}分钟'.format(self.next_time/60)) except BaseException as e: self.日志('输入无效!','舛错信息:',str(e)) self.next_time=60*20 self.日志('已将参数停行默许设置','距离下一次任务:','20分钟') finally: pass try: self.app_lalel=(input('\n请输入APP随机切换频次:')).upper() if re.match("^[DK]+$", self.app_lalel, re.I ): self.日志('已乐成接管参数设置!','APP随机切换频次:',self.除重计数(self.app_lalel)) else: self.app_lalel='DKK' self.日志('输入无效!','已将参数停行默许设置,APP随机切换频次:',self.除重计数(self.app_lalel)) except BaseException as e: self.日志('输入无效!','舛错信息:',str(e)) self.app_lalel='DKK' #APP切换随机比例 self.日志('已将参数停行默许设置','APP随机切换频次:',self.除重计数(self.app_lalel)) finally: pass self.initial_time=time.time() # 计时器,用于判断原次循环光阳的几多多 def 除重计数(self,app_label): ''' 比例的统计 ''' app_labels={} for app in app_label: app_labels[app]=app_labels.get(app,0)+1 return str(app_labels) def 运止(self): self.日志('步调已初步运止!') self.接管参数()#接管参数 self.启动抖音极速版() while True: try: self.执止() except BaseException as e: self.日志('运止舛错!','舛错信息:',str(e)) def 执止(self): '''执止''' if self.next_time-(int(time.time()-self.initial_time))<=self.average_sleep: hh=int(time.strftime('%H')) mm=int(time.strftime('%M')) if hh==0 and mm<=20: self.启动抖音极速版() else: self.重启抖音极速版() # 挪用重启抖音办法 self.初步任务() # 挪用打开任务界面并检查能否有签到任务 self.限时任务赚金币() self.开宝箱赚金币() # 挪用宝箱任务和宝箱告皂阅读 self.重置任务() # 返回视频或从头启动APP else: self.参数重置()#判断依据光阳能否执止参数重置 try: self.滑动屏幕() self.日志('第{}次{}滑动乐成!'.format(self.i,self.获与称呼()),'','') except BaseException as e: self.日志('第{}次{}滑动失败!'.format(self.i,self.获与称呼()),'舛错信息:',str(e)) finally: # 初始化下一次任务时长-已用时长=初始化下一次任务时长-((当前光阳-初始化光阳)) next_time=round(((self.next_time-(time.time()-self.initial_time))/60),2) self.日志('距离下一次任务另有:',next_time,'分钟') def 参数重置(self): '''强制重置参数初始化''' set_hh=23 set_mm=59 hh=int(time.strftime('%H')) mm=int(time.strftime('%M')) if hh>=set_hh and mm>=set_mm: self.重启抖音极速版() self.flag_sign=1 self.app_lalel='DKK' self.next_time=3 self.initial_time = time.time() self.日志('当天行将完毕,参数已重置!\n', '随机切换频次已规复:{}'.format(self.calculator(self.app_lalel)) ) self.久停(60) else : self.i+=1 def 日志(self,log_operation='',log_dimension='',log_target=''): log_time=time.strftime('%Y-%m-%d %H:%M:%S')#光阳 print('{} {}{}{}'.format(log_time,log_operation,log_dimension,log_target)) '''日志:光阳|收配|维度|目标''' def 启动抖音极速版(self): '''启动抖音极速版''' d = u2.connect(self.ip) # d.app_current()# 当前使用 if d.app_current()['package']=='com.ss.android.ugc.aweme.lite': print(True) self.日志('抖音极速版正正在运止中,无需启动!') else: d.app_stop("com.kuaishou.nebula")#进止快手极速版 d.app_start("com.ss.android.ugc.aweme.lite")#启动抖音 self.日志('正正在启动抖音极速版!') def 重启抖音极速版(self): '''重启抖音极速版''' d = u2.connect(self.ip) try: d.app_stop("com.kuaishou.nebula")#进止快手极速版 d.app_stop("com.ss.android.ugc.aweme.lite")#进止抖音极速版 d.app_start("com.ss.android.ugc.aweme.lite")#启动抖音 except BaseException as e: self.日志('抖音极速版重启异样!','舛错信息:',str(e)) finally: self.久停(10) self.日志('抖音极速版重启等候完毕!') def 启动快手极速版(self): '''启动快手极速版''' d = u2.connect(self.ip) if d.app_current()['package']=='com.kuaishou.nebula': print(True) self.日志('快手极速版正正在运止中,无需启动!') else: d.app_stop("com.ss.android.ugc.aweme.lite")#进止抖音极速版 d.app_start("com.kuaishou.nebula")#启动快手极速版 self.日志('正正在启动快手极速版!') def 重启快手极速版(self): '''重启快手极速版''' d = u2.connect(self.ip) self.日志('正正在重启快手极速版!') try: d.app_stop("com.kuaishou.nebula")#进止快手极速版 d.app_stop("com.ss.android.ugc.aweme.lite")#进止抖音极速版 d.app_start("com.kuaishou.nebula")#启动快手极速版 except BaseException as e: self.日志('快手极速版重启异样!','舛错信息:',str(e)) finally: self.久停(16) self.日志('快手极速版重启等候完毕!') def 获与称呼(self): d = u2.connect(self.ip) if d.app_current()['package']=='com.kuaishou.nebula': return '快手极速版' elif d.app_current()['package']=='com.ss.android.ugc.aweme.lite': return '抖音极速版' else: return '手机屏幕' def 滑动屏幕(self): '''滑动屏幕''' d = u2.connect(self.ip) try: # d.swipe_ext("up", scale=0.88,steps=10)# 上滑88% d.swipe(0.5, 0.8, 0.5, 0.12) # 按坐标滑动屏幕 self.日志('{}滑动乐成!'.format(self.获与称呼())) except BaseException as e: self.日志('{}滑动异样!'.format(self.获与称呼())) finally: # pass self.随机久停(self.average_sleep) def 随机久停(self,average): '''随机光阳久停办法''' # average=8 sigma=6 t=random.normalvariate(average,sigma) # 孕育发作一个折乎正态分布的随机光阳 while t<=0 or t>=12: # 判断随机光阳能否正在指定领域 t=random.normalvariate(average,sigma) # 从头孕育发作一个折乎正态分布的随机光阳 t0=round(t,2)#糊口生涯两位小数 # 挪用久停办法 self.久停(t0) def 久停(self,t): '''指定久停光阳办法''' t0=t sleep_time=0.08 while t>sleep_time: t=round(t,2) time.sleep(sleep_time)#屏幕刷新间隔 print('\r久停等候光阳还剩:{:>5}秒'.format(str(t)),end='') t=t-sleep_time print('\r{} 久停等候{}秒已完毕!'.format(time.strftime('%Y-%m-%d %H:%M:%S'),t0)) def 初步任务(self): '''赚金币任务''' d = u2.connect(self.ip) try: # d(resourceId="com.ss.android.ugc.aweme.lite:id/bh1").click() # 13.7.0 # d(resourceId="com.ss.android.ugc.aweme.lite:id/bht").click() # 13.8.0 d(resourceId="com.ss.android.ugc.aweme.lite:id/buq").click() # 13.9.0 self.日志('已进入金币任务!','进入方式:','resourceId') except BaseException as e: d.click(0.500, 0.966)#点击底部来赚钱 self.日志('已进入金币任务!','进入方式:','click(0.5, 0.95)') finally: self.久停(8) # 等候进入任务,秒,依据手机流畅度可批改启动须要等候时长 d.swipe_ext("up", 0.6)# 上滑60% self.日志('滑动屏幕!','up:','60%') hh=int(time.strftime('%H')) mm=int(time.strftime('%M')) if hh==0 and mm<=20 and self.flag_sign==1: self.日志('行将停行签到!') try: self.flag_sign=0 # self.sign_in()#签到 self.签到()#跳过签到 except: pass self.日志('签到已完成!') else: try: #封锁查察支益 self.封锁查察支益() except: pass def 封锁查察支益(self): '''封锁查察支益''' d = u2.connect(self.ip) def 签到(self): '''签到''' d = u2.connect(self.ip) self.久停(8) self.识图点击('sign_in') self.识图点击('Watch_the_vedio_again') # self.久停(self.ad_time) self.久停(self.temp_ad_time) self.封锁告皂() self.再看一个获金币() # self.久停(self.ad_time) self.久停(self.temp_ad_time) self.封锁告皂() def 识图点击(self,picture): '''识图''' d = u2.connect(self.ip) self.日志('行将初步识图点击!') def matchImg(imgsrc,imgobj,confidencevalue=0.5):#imgsrc=本始图像,imgobj=待查找的图片 imsrc = ac.imread(imgsrc) imobj = ac.imread(imgobj) confidence=confidencevalue match_result = ac.find_template(imsrc,imobj,confidence) # {'confidence': 0.5435812473297119, 'rectangle': ((394, 384), (394, 416), (450, 384), (450, 416)), 'result': (422.0, 400.0)} if match_result is not None: match_result['shape']=(imsrc.shape[1],imsrc.shape[0])#0为高,1为宽 match_result['shape']=(imobj.shape[1],imobj.shape[0])#0为高,1为宽 match_result['px']=(match_result['rectangle'][0][0]+imsrc.shape[1]/2)/imobj.shape[1],(match_result['rectangle'][0][1]+imsrc.shape[0]/2)/imobj.shape[0] return match_result self.久停(3) try: # 截图 p=d.screenshot()# 截图 p.save('./image/screenshot.png') self.久停(3) ret=matchImg('./image/{name}.png'.format(name=picture),'./image/screenshot.png') d.click(ret['px'][0],ret['px'][1])# 坐标=(round(ret['px'][0],2),round(ret['px'][1],2)) self.日志('{name}截图识别点击乐成!'.format(name=picture),'形容:',坐标) #等候响应取告皂时历久待 self.temp_ad_time=45 except BaseException as e: self.日志('{name}截图识别,异样!'.format(name=picture),'舛错信息:',str(e)) self.temp_ad_time=2 def 封锁告皂(self): d = u2.connect(self.ip) try: if self.temp_ad_time==2: self.日志('temp_ad_time==2!','无截图识别点击:','跳过告皂!') else: d.xpath('//*[@resource-id="com.ss.android.ugc.aweme.lite:id/aa_"]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.view.ViewGroup[1]/android.view.ViewGroup[2]/android.widget.ImageView[1]').click() self.日志('已封锁告皂!','封锁方式:','xpath') except BaseException as e: self.日志('告皂封锁异样!','舛错信息',str(e)) d.click(0.92, 0.052) self.日志('检验测验坐标封锁告皂已完成!') self.久停(1)#休眠1秒 finally: self.日志('正正在最后确认封锁告皂!') # d.click(0.9, 0.05)# d.click(0.92, 0.052) self.日志('确认坐标封锁告皂已完成!','封锁方式:','click(0.92, 0.052)') # self.abnormal_time=10 def 再看一个获金币(self): self.识图点击('Watch_vedio_again') def 限时任务赚金币(self): d = u2.connect(self.ip) # d.swipe_ext("up", 0.6)# 上滑60% self.识图点击('task') self.久停(self.temp_ad_time) self.封锁告皂() self.再看一个获金币() self.久停(self.temp_ad_time) self.封锁告皂() def 开宝箱赚金币(self): d = u2.connect(self.ip) d.click(0.858, 0.918) self.识图点击('Watch_the_vedio_again') self.久停(self.temp_ad_time) self.封锁告皂() self.再看一个获金币() self.久停(self.temp_ad_time) self.封锁告皂() self.日志('已完成开宝箱赚金币!') self.久停(3) def 随机从头选择(self,flag='start'): # 随机启动切换APP self.app=random.choice(self.app_lalel) hh=int(time.strftime('%H')) mm=int(time.strftime('%M')) if hh==0 and mm<=20: self.app='D' else: pass if self.app=='D': self.app='抖音极速版' if self.app=='K': self.app='快手极速版' self.日志('已随机选择极速版使用!','APP:',self.app) if self.app == '快手极速版': self.重启快手极速版() self.日志('已重启快手极速版!') self.久停(12) elif self.app == '抖音极速版' and flag=='restart': self.重启抖音极速版() self.日志('已重启抖音极速版!') self.久停(12) elif self.app == '抖音极速版' and flag=='start': self.启动抖音极速版() def 重置任务(self): '''执止继续看视频且随机启动''' self.initial_time = time.time()#初始化记时光阳 self.i=0 #从头计数 self.next_time=self.task_frequency-self.abnormal_time-self.ad_time# 初始化距离下一次任务光阳为任务频次 d = u2.connect(self.ip) d.swipe_ext("up", 0.26)# 上滑26% # d.swipe_ext("up", 0.8)# 上滑80% self.久停(6) self.随机从头选择(flag='restart') if __name__=="__main__": mobile_phone=智能手机('192.168.3.145') mobile_phone.运止() # mobile_phone.限时任务赚金币() # mobile_phone.开宝箱赚金币() # mobile_phone.封锁告皂() # mobile_phone.再看一个获金币() # mobile_phone.签到() # mobile_phone.初步任务() 四、运止成效

热门文章

友情链接: 永康物流网 本站外链出售 义乌物流网 本网站域名出售 手机靓号-号码网