抖音极速版/快手极速版自动浏览

1、安装Python需要的包

pip install uiautomator2

2、脚本

# -*- coding: utf-8 -*-
"""
Created on Tue Jul 28 15:25:52 2020
更新: 2020年08月12日

@author: 抖音极速版邀请码:872481738  快手极速版邀请码:767 160 108
"""


import uiautomator2 as u2
import time
import random




class Phone:
    '''定义一个类'''
    def __init__(self):
        '''初始化运行参数'''
        try:
            self.next_time=60*eval(input('请输入距离下一次任务时间:[0分钟]')) # 距离下一次任务时间(分钟)
        except :
            self.next_time=60*0
        try:
            self.ad_time=eval(input('请输入广告时长:[45秒]')) # 广告时长(秒)
        except:
            self.ad_time=45

        try:
            self.task_frequency=60*eval(input('请输入金币任务频率:[20分钟]')) # 任务频率(分钟)
        except:
            self.task_frequency=60*20

        self.app_lalel=input('请输入是否刷快手极速版【Y/R/N】:[N_抖音极速版]')
        while self.app_lalel not in ['Y','y','N','n','','R','r']:
            self.app_lalel=input('请重新输入是否刷快手极速版【Y/N】:')
        if self.app_lalel=='Y' or self.app_lalel=='y':
            self.app='快手极速版'
        elif self.app_lalel=='R' or self.app_lalel=='r':
            self.app='随机抖音或快手极速版'
        else :
            self.app='抖音极速版'
        # 输入选择或默认参数信息
        print('{now_time} 您的选择为:距离下一次任务[{next_time}]分钟,金币任务频率[{task_frequency}]分钟,广告时长[{ad_time}]秒,APP[{app}]'.format(
                                            now_time=time.strftime('%Y-%m-%d %H:%M:%S'),
                                            next_time=round(self.next_time/60,1),
                                            task_frequency=round(self.task_frequency/60,1),
                                            ad_time=round(self.ad_time,1),
                                            app=self.app))
                    
        self.initial_time=time.time() # 计时器,用于判断本次循环时间的多少
        self.ip_address='192.168.137.190' # 手机连接IP地址,可自行修改
        self.average_sleep=4 # 滑动手机间隔等待平均时间(秒) 
        self.s_time=0.08 # 等待时屏幕刷新频率(秒)
        self.i=0 # 初始化循环次数
    

    def run(self):
        '''定义运行函数方法'''

        # 一、启动抖音极速版
        self.start_douyin()
        
        while True:
            # 执行任务
            self.run_task()
            
            
    def run_task(self):
        '''任务运用流程'''
        # 判断下一次签到时间
        if self.next_time-(int(time.time())-self.initial_time)<=0:
            # 重启抖音极速版,执行相关任务
            print('{} 任务即将开始,抖音极速版将重启!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            
            self.restart_douyin() # 调用重启抖音方法
            self.open_task() # 调用打开任务界面并检查是否有签到任务
            self.Time_limited_task() #调用执行限时任务和限时任务广告浏览
            self.Treasure_box_task() # 调用宝箱任务和宝箱广告浏览
            self.close_task() #关闭任务界面重回抖音极速版或快手极速版视频页面
            # 重置任务初始化参数
            self.initial_time = time.time()#初始化记时时间
            self.next_time=self.task_frequency-self.ad_time# 初始化距离下一次任务时间为任务频率
            print('{} 已重置距离下一次任务还剩{}分钟!'.format(time.strftime('%Y-%m-%d %H:%M:%S'),self.next_time/60))
            self.i=0 #重新计数


        else:
            # 滑动手机屏幕
            try:
                self.i+=1
                print('{} 第{}次滑动手机屏幕!'.format(time.strftime('%Y-%m-%d %H:%M:%S'),self.i))
                self.slide_screen() # 调用滑动屏幕函数方法
                self.suspend_time() # 调用等待暂停方法
            except BaseException as e:
                print('{} 滑动屏幕失败\n错误信息{}'.format(time.strftime('%Y-%m-%d %H:%M:%S'),e))
            finally:
                # 刷新下次距离时间
                #下一次时间等于 当前下一次时间减去流逝的时间
                print('{} 距离下一次金币任务还剩{:.2f}分钟'.format(time.strftime('%Y-%m-%d %H:%M:%S'),
                                                    (self.next_time-(int(time.time())-self.initial_time))/60))        
        
    def start_douyin(self):
        '''启动抖音'''        

        d = u2.connect(self.ip_address)
        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")
            print('{} 正在启动抖音极速版!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            self.sleep_time(10)# 等待抖音启动,秒,根据手机流畅度可修改启动需要等待时长
        except BaseException as e:
            print('{} 抖音极速版启动失败!\n错误信息:{}'.format(time.strftime('%Y-%m-%d %H:%M:%S'),e))
        finally:
            pass
            

        
    def restart_douyin(self):
        '''重启抖音极速版'''        
        d = u2.connect(self.ip_address)
        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")
            print('{} 正在重启抖音极速版……'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            self.sleep_time(10) # 等待抖音启动,秒,根据手机流畅度可修改启动需要等待时长
        except BaseException as e:
            print('{} 抖音极速版重启失败!\错误信息:{}'.format(time.strftime('%Y-%m-%d %H:%M:%S'),e))
        finally:
            pass        
        
    def start_kuaishou(self):
        '''启动快手'''
        d = u2.connect(self.ip_address)
        #启动前停止抖音极速版
        try:
            d.app_stop("com.ss.android.ugc.aweme.lite")#停止抖音极速版
            # d.app_stop("com.kuaishou.nebula")#停止快手极速版
            d.app_start("com.kuaishou.nebula")
            print('{} 正在启动快手极速版!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            self.sleep_time(10)# 等待抖音启动,秒,根据手机流畅度可修改启动需要等待时长
        except BaseException as e:
            print('{} 快手极速版启动失败!\错误信息:{}'.format(time.strftime('%Y-%m-%d %H:%M:%S'),e))
        finally:
            pass        

    def restart_kuaishou(self):
        '''重启快手极速版'''
        d = u2.connect(self.ip_address)
        #启动前停止抖音极速版
        try:
            d.app_stop("com.ss.android.ugc.aweme.lite")# 停止抖音极速版
            d.app_stop("com.kuaishou.nebula")# 停止快手极速版
            d.app_start("com.kuaishou.nebula") # 启动快手极速版
            print('{} 正在重启快手极速版!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            self.sleep_time(10)# 等待抖音启动,秒,根据手机流畅度可修改启动需要等待时长
        except BaseException as e:
            print('{} 快手极速版重启失败!\错误信息:{}'.format(time.strftime('%Y-%m-%d %H:%M:%S'),e))
        finally:
            pass


    def slide_screen(self):
        '''滑动屏幕'''
        try:
            d = u2.connect(self.ip_address)
            d.swipe(0.5, 0.8, 0.5, 0.12)  # 滑动屏幕
            # d.swipe(0.985, 0.8, 0.985, 0.12)  # 侧面滑动屏幕适用于抖音
            print('{} 滑动屏幕成功!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except BaseException as e:
            print('{} 滑动屏幕失败\n错误信息{}'.format(time.strftime('%Y-%m-%d %H:%M:%S'),e))
        finally:
            pass
        
        
    def suspend_time(self):
        mu=self.average_sleep#平均暂停时间
        sigma=6
        t=random.normalvariate(mu,sigma) # 产生随机时间
        while t<=0 or t>=12: 
            # 判断随机时间是否在指定范围
            t=random.normalvariate(mu,sigma) # 重新产生随机时间直到满足随机时间在指定范围
        t0=round(t,2)
        while t>0:
            # 刷新等待随机时间
            t=round(t,2)
            s_time=self.s_time #暂停等待时间刷新频率 秒
            time.sleep(s_time)
            print('\r暂停等待时间还剩:{:>5}秒'.format(str(t)),end='')
            t=t-s_time
        print('\r{} 暂停等待{}秒已结束!'.format(time.strftime('%Y-%m-%d %H:%M:%S'),t0))
            
    def sleep_time(self,t):
        t0=t
        while t>0:
            t=round(t,2)
            s_time=self.s_time #暂停等待时间刷新频率 秒
            time.sleep(s_time)
            print('\r暂停等待时间还剩:{:>5}秒'.format(str(t)),end='')
            t=t-s_time
        print('\r{} 暂停等待{}秒已结束!'.format(time.strftime('%Y-%m-%d %H:%M:%S'),t0))
            
            
    def open_task(self):
        d = u2.connect(self.ip_address)
        print('{} 即将执行赚金币任务……'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        
        try:
            d(resourceId="com.ss.android.ugc.aweme.lite:id/bsu").click()#来赚钱
            #点击完成之后等待6秒,完成界面切换
            print('{} 正在进入抖音极速版任务页面……'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            self.sleep_time(6) # 等待进入任务,秒,根据手机流畅度可修改启动需要等待时长
        except :
            d.click(0.500, 0.966)#点击底部来赚钱
            print('{} 正在重新进入抖音极速版任务页面……'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            self.sleep_time(6) # 等待进入任务,秒,根据手机流畅度可修改启动需要等待时长
            
        # 已进入任务界面
        # 判断是否当天第一次进入的签到弹窗
        try:
            print('{} 正在检查是否有签到或查看收益提示……'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            # 签到后的
            self.sleep_time(6)
            d(description="看广告视频再赚").click()
            # d.click(0.50, 0.626)#看广告视频再赚
            print('{} 成功进入签到广告赚金币!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            print('{} 正在浏览签到广告,等待{}秒后广告广告浏览!'.format(time.strftime('%Y-%m-%d %H:%M:%S'),self.ad_time))
            time.sleep(self.ad_time)
            d(text="关闭广告").click()
            print('已关闭签到广告!')
            d.xpath('//android.app.Dialog/android.view.View[1]/android.view.View[2]/android.view.View[1]/android.view.View[6]').click()
            
            try:
                d(description="查看收益").click()
                print('{} 正在查看收益并返回……'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
                self.sleep_time(3)
                d(resourceId="com.ss.android.ugc.aweme.lite:id/jr").click()
            except:
                pass
        
        except :
            # pass
            print('{} 今日已签到过了!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        finally:
            d.swipe(0.5, 0.8, 0.5, 0.6)  # 向上滑动屏幕
            time.sleep(1)     
            d.swipe(0.5, 0.8, 0.5, 0.6)  # 向上滑动屏幕
        
    
    def Time_limited_task(self):
        '''限时任务'''
        d = u2.connect(self.ip_address)
        # d = u2.connect('192.168.3.85')
        print('{} 开始执行限时任务赚金币……'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        # 如果未进入任务界面,则可能产生任务点击异常
        try:
            self.sleep_time(6)
            d(description="限时任务赚金币").click()#产生异常则无法进入限时任务赚金币
            # 点击任务后等待进入广告浏览
            print('{} 成功执行限时任务赚金币。'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            print('{} 正在浏览限时任务广告,等待{}秒后关闭广告浏览……'.format(time.strftime('%Y-%m-%d %H:%M:%S'),self.ad_time))
            # time.sleep(self.ad_time)# 广告时长与进入广告等待时长之后
            self.sleep_time(self.ad_time)
            # 关闭广告,如果没有进入广告则会产生广告关闭异常
            try:
                d(text="关闭广告").click()
                print('{} 限时任务广告浏览完成!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
                #等待3秒页面响应时间
                self.sleep_time(3)
            except:
                print('{} 限时任务广告关闭异常或无限时任务广告!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
           
        except:
            print('{} 无法进入限时任务,请检查当前页面是否需要滑动调整!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))

        
    
    def Treasure_box_task(self):
        '''宝箱广告任务'''
        d = u2.connect(self.ip_address)
        print('{} 开始执行宝箱任务赚金币……'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        # 点击开宝箱操作
       
        try:
            # d(description="开宝箱得金币").click()
            d.click(0.863, 0.921)# 宝箱坐标,固定坐标
            print('{} 成功点击宝箱任务赚金币!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            # 点击后等待页面响应
            self.sleep_time(6) #设置页面响应时间为6秒
            # 看广告视频再赚
            d(description="看广告视频再赚").click()#如果出现异常则未到签到时间结束
            # d.click(0.50, 0.626)#看广告视频再赚、需要判断是否需要点击,如果没有页面通过坐标位置可能为其他属性
            # d.click(0.50, 0.678) # 将屏幕向下滑动两次后的坐标
            print('{} 成功点击弹窗广告赚金币!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            #等待响应与广告时长等待
            print('{} 正在浏览宝箱任务广告,等待{}秒后关闭广告浏览……'.format(time.strftime('%Y-%m-%d %H:%M:%S'),self.ad_time))
            self.sleep_time(self.ad_time)# 广告时长与进入广告等待时长之后
            # 关闭广告,无广告则可能产生异常
            try:  
                d(text="关闭广告").click()
                print('{} 宝箱广告浏览完成!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            except:
                print('{} 宝箱广告关闭异常或无宝箱广告!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))#等待3秒页面响应时间
        except :
            print('{} 等倒计时结束后再来领取吧~'.format(time.strftime('%Y-%m-%d %H:%M:%S')))

        
        

    def close_task(self):
        '''关闭抖音任务,返回视频浏览'''
        d = u2.connect(self.ip_address)
        # 回到视频界面继续浏览
        d.swipe(0.5, 0.6, 0.5, 0.12)  # 向上滑动屏幕
        d.swipe(0.5, 0.6, 0.5, 0.12)  # 向上滑动屏幕
        
        d.swipe(0.5, 0.24, 0.5, 0.6)  # 向下滑动屏幕
        try:
            d(description="看视频,赚金币").click() #
            if self.app_lalel=='R' or self.app_lalel=='r':
                self.app=random.choice(['快手极速版','抖音极速版'])
                print('{} 本次APP随机选择结果为[{}]'.format(time.strftime('%Y-%m-%d %H:%M:%S'),self.app))
            if self.app == '快手极速版':
                self.restart_kuaishou()
            else:
                print('{} 已成功返回抖音极速版!'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except BaseException as e:
            print('{} 第一次返回视频界面失败,正在尝试第二次返回视频界面!\n错误信息:{}'.format(time.strftime('%Y-%m-%d %H:%M:%S'),e))
            try:
                d(description="看视频,赚金币").click()#二
            except BaseException as e:
                print('{} 第二次返回视频界面失败,正在尝试第三次返回视频界面!\n错误信息:{}'.format(time.strftime('%Y-%m-%d %H:%M:%S'),e))
                try:
                    d(description="看视频,赚金币奖励升级").click()#三
                except BaseException as e:
                    print('{} 第三次返回视频界面失败,将启动快手极速版!\n错误信息:{}'.format(time.strftime('%Y-%m-%d %H:%M:%S'),e))
                    self.restart_kuaishou()
        # 点击后等待页面响应
        self.sleep_time(6)
        
My_Phone=Phone()
My_Phone.run()
# -*- coding: utf-8 -*-
"""
更新: 2020年08月05日

@author: 抖音极速版邀请码:872481738  快手极速版邀请码:767 160 108
"""

import uiautomator2 as u2
import time
import random


class 手机:
    ip='192.168.137.183'
    # ip='192.168.43.1'
    # d = u2.connect(ip)

    正态分布平均时间=4 #屏幕滑动时间间隔、秒
    任务频率=20#分钟
    广告时长=45#秒
    
    def __init__(self):
        # 记时
        try:
            self.广告时长=eval(input('请输入广告时长(秒):\n'))
        except:
            self.广告时长=45
        try:
            距离任务剩余时长=eval(input('距离下一次签到还有多少分钟?\n'))#多少分钟之后可以进行来赚钱宝箱与限时任务
            if 距离任务剩余时长>self.任务频率:
                距离任务剩余时长=self.任务频率
        except:
            距离任务剩余时长=0
            
        self.任务累计时间=self.任务频率*60-60*距离任务剩余时长#已经浏览的视频时长(抖音+快手),或减去剩余时长

        self.初始任务时间 = time.time()-self.任务累计时间#初始化整点时间
        self.初始累计时间 = time.time()#初始化切换时间
        是否刷快手极速版标识=input('是否刷快手极速版:(Y/N):')
        
        while 是否刷快手极速版标识 not in ['Y','y','N','n']:
            是否刷快手极速版标识=input('请重新输入是否刷快手极速版:(Y/N):')
        if 是否刷快手极速版标识=='Y'or 是否刷快手极速版标识=='y':
            是否刷快手极速版标识='Y'
            print('已选择:Y')
        elif 是否刷快手极速版标识=='N'or 是否刷快手极速版标识=='n':
            print('已选择:N')
        
        self.是否刷快手极速版标识=是否刷快手极速版标识

        print('程序时间初始化完成!已设置距离下一次整点任务还有{}分钟'.format(距离任务剩余时长))

    def 启动抖音极速版(self):
        d = u2.connect(self.ip)
        d.app_stop("com.kuaishou.nebula") #停止快手极速版
        #启动抖音极速版
        d.app_start("com.ss.android.ugc.aweme.lite")
        #退出快手极速版
        #d.app_stop("com.kuaishou.nebula") #停止
    def 重启抖音极速版(self):
        d = u2.connect(self.ip)
        d.app_stop("com.kuaishou.nebula") #停止快手极速版
        
        d.app_stop("com.ss.android.ugc.aweme.lite") #停止
        d.app_start("com.ss.android.ugc.aweme.lite")
        print('\r抖音极速版正在重启……{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        time.sleep(10)

    def 滑动极速版(self):
        d = u2.connect(self.ip)
        d.swipe(0.5, 0.8, 0.5, 0.12)  # 滑动屏幕
        # d.swipe(0.985, 0.8, 0.985, 0.12)  # 侧面滑动屏幕适用于抖音
        print('手机页面滑动成功!{}{}'.format(' '*3,time.strftime('%Y-%m-%d %H:%M:%S')))
    def 重启快手极速版(self):
        d = u2.connect(self.ip)
        d.app_stop("com.kuaishou.nebula") #停止快手极速版
        d.app_start("com.kuaishou.nebula")
        print('快手极速版启动成功!{}{}'.format(' '*3,time.strftime('%Y-%m-%d %H:%M:%S')))
    
    def 打开任务界面(self):
        d = u2.connect(self.ip)
        print('准备执行任务赚金币{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        
        try:
            # d(resourceId="com.ss.android.ugc.aweme.lite:id/axz").click()#来赚钱
            # d(resourceId="com.ss.android.ugc.aweme.lite:id/ay4").click()#来赚钱
            d(resourceId="com.ss.android.ugc.aweme.lite:id/ay9").click()#来赚钱
            #点击完成之后等待6秒,完成界面切换
            print('\r已正常进入抖音极速版任务页面!{}{}'.format(' '*3,time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(6)
        except :
            d.click(0.500, 0.966)#点击底部来赚钱
            print('\r已点击进入抖音极速版任务页面!{}{}'.format(' '*3,time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(6)
            
        # 已进入任务界面
        # 判断是否当天第一次进入的签到弹窗
        try:
            print('正在检查是否有签到或查看收益提示……{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            # 签到后的
            time.sleep(6)
            d(description="看广告视频再赚").click()
            # d.click(0.50, 0.626)#看广告视频再赚
            print('成功进入签到广告赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            print('请等待{}秒!'.format(self.广告时长))
            time.sleep(self.广告时长)
            d(text="关闭广告").click()
            print('已关闭签到广告!')
            d.xpath('//android.app.Dialog/android.view.View[1]/android.view.View[2]/android.view.View[1]/android.view.View[6]').click()
            
            try:
                d(description="查看收益").click()
                print('正在查看收益{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
                time.sleep(3)
                d(resourceId="com.ss.android.ugc.aweme.lite:id/jr").click()
            except:
                print('无查看收益提示')
        
        except :
            # pass
            print('今日已签到过了!')
        
        
        # d.swipe(0.5, 0.6, 0.5, 0.8)  # 向下滑动屏幕
        # time.sleep(3)
        # d.swipe(0.5, 0.6, 0.5, 0.8)  # 向下滑动屏幕
        # time.sleep(3)
        
        
        d.swipe(0.5, 0.8, 0.5, 0.6)  # 向上滑动屏幕
        time.sleep(1)     
        d.swipe(0.5, 0.8, 0.5, 0.6)  # 向上滑动屏幕
        
    
    def 限时任务赚金币(self):
        d = u2.connect(self.ip)
        # d = u2.connect('192.168.3.85')
        print('正在执行限时任务赚金币{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        # 如果未进入任务界面,则可能产生任务点击异常
        try:
            time.sleep(6)
            d(description="限时任务赚金币").click()#产生异常则无法进入限时任务赚金币
            # 点击任务后等待进入广告浏览
            print('成功执行限时任务赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            print('等待{}秒后关闭广告浏览……'.format(self.广告时长))
            time.sleep(self.广告时长)# 广告时长与进入广告等待时长之后
            # 关闭广告,如果没有进入广告则会产生广告关闭异常
            try:
                d(text="关闭广告").click()
                print('限时任务广告浏览完成。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
                #等待3秒页面响应时间
                time.sleep(3) 
            except:
                print('限时任务广告关闭异常或无限时任务广告。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
           
        except:
            print('无法进入限时任务,请检查当前页面是否需要滑动调整。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))

        
    
    def 宝箱任务赚金币(self):
        d = u2.connect(self.ip)
        print('正在执行宝箱任务赚金币{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        # 点击开宝箱操作
       
        try:
            # d(description="开宝箱得金币").click()
            d.click(0.863, 0.921)# 宝箱坐标,固定坐标
            print('成功点击宝箱任务赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            # 点击后等待页面响应
            time.sleep(6)#设置页面响应时间为6秒
            # 看广告视频再赚
            d(description="看广告视频再赚").click()#如果出现异常则未到签到时间结束
            # d.click(0.50, 0.626)#看广告视频再赚、需要判断是否需要点击,如果没有页面通过坐标位置可能为其他属性
            # d.click(0.50, 0.678) # 将屏幕向下滑动两次后的坐标
            print('成功点击弹窗广告赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            #等待响应与广告时长等待
            print('等待{}秒后关闭广告浏览……'.format(self.广告时长))
            time.sleep(self.广告时长)# 广告时长与进入广告等待时长之后
            # 关闭广告,无广告则可能产生异常
            try:  
                d(text="关闭广告").click()
                print('宝箱广告浏览完成。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            except:
                print('宝箱广告关闭异常或无宝箱广告。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))#等待3秒页面响应时间
        except :
            print('等倒计时结束后再来领取吧~')

        
        

    def 关闭任务界面(self):
        d = u2.connect(self.ip)
        # 回到视频界面继续浏览
        d.swipe(0.5, 0.6, 0.5, 0.12)  # 向上滑动屏幕
        d.swipe(0.5, 0.6, 0.5, 0.12)  # 向上滑动屏幕
        
        d.swipe(0.5, 0.24, 0.5, 0.6)  # 向下滑动屏幕
        try:
            d(description="看视频,赚金币").click() #一
            if self.是否刷快手极速版标识 == 'Y':
                self.重启快手极速版()
                print('已成功启动快手极速版!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            else:
                print('已成功返回抖音极速版!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except BaseException as e:
            print('第一次返回视频界面失败{},正在尝试第二次返回视频界面!'.format(e))
            try:
                d(description="看视频,赚金币").click()#二
            except BaseException as e:
                print('第二次返回视频界面失败{},正在尝试第三次返回视频界面!'.format(e))
                try:
                    d(description="看视频,赚金币奖励升级").click()#三
                except BaseException as e:
                    print('第三次返回视频界面失败{},将启动快手极速版!'.format(e))
                    self.重启快手极速版()
                
        # 点击后等待页面响应
        time.sleep(6)
    
        
        
    def 时间等待(self):
        mu=self.正态分布平均时间
        # print(mu)
        sigma=6
        t=random.normalvariate(mu,sigma)
        while t<=0 or t>=12:
            t=random.normalvariate(mu,sigma)

        self.任务累计时间=time.time()-self.初始任务时间
        while t>0:
            t=round(t,2)
            time.sleep(0.08)
            print('\r剩余等待时间:{:>5}秒'.format(str(t)),end='')
            t=t-0.08
            
    def 运行(self):
        self.启动抖音极速版()
        print('-'*16+'浏览视频APP正在启动'+'-'*16)
        while True:
            下一次任务时间=self.任务频率-self.任务累计时间/60-self.广告时长/60
            if 下一次任务时间<0:
                下一次任务时间=0
            print('\r累计整点时间:{:.2f}分钟,距离任务还剩{:.2f}分钟'.format(self.任务累计时间/60,下一次任务时间))

            # self.启动抖音极速版()
            self.滑动极速版()
            self.时间等待()

            if self.任务累计时间>self.任务频率*60-self.广告时长:#满足任务时间间隔则进入任务界面,并将任务记时归零
                self.重启抖音极速版()
                self.打开任务界面()
                self.限时任务赚金币()
                self.宝箱任务赚金币()
                self.关闭任务界面()
                self.初始任务时间 = time.time()#记时校正
            
        


我的手机=手机()
# 我的手机.关闭任务界面()
# 我的手机.是否刷快手极速版标识

# 我的手机.运行()
while True:
    try:
        我的手机.运行()
    except BaseException as e:
        print('程序异常,即将重新启动!\n{}'.format(e))
# -*- coding: utf-8 -*-
"""
Created on 2020年5月23日更新

@author: 极速版邀请码:872481738
"""

import uiautomator2 as u2
import time
import random


class 手机:
    ip='192.168.3.85'

    正态分布平均时间=4 #屏幕滑动时间间隔、秒
    任务频率=20#分钟
    
    def __init__(self):
        # 记时
        
        try:
            距离任务剩余时长=eval(input('距离下一次签到还有多少分钟?\n'))#多少分钟之后可以进行来赚钱宝箱与限时任务
            if 距离任务剩余时长>self.任务频率:
                距离任务剩余时长=self.任务频率
        except:
            距离任务剩余时长=0
            
        self.任务累计时间=self.任务频率*60-60*距离任务剩余时长#已经浏览的视频时长(抖音+快手),或减去剩余时长

        self.初始任务时间 = time.time()-self.任务累计时间#初始化整点时间
        self.初始累计时间 = time.time()#初始化切换时间

        print('程序时间初始化完成!已设置距离下一次整点任务还有{}分钟'.format(距离任务剩余时长))

    def 启动抖音极速版(self):
        d = u2.connect(self.ip)
        #启动抖音极速版
        d.app_start("com.ss.android.ugc.aweme.lite")
        #退出快手极速版
        #d.app_stop("com.kuaishou.nebula") #停止


    def 滑动抖音极速版(self):
        d = u2.connect(self.ip)
        d.swipe(0.5, 0.6, 0.5, 0.12)  # 滑动屏幕
        # d.swipe(0.985, 0.8, 0.985, 0.12)  # 侧面滑动屏幕适用于抖音
        print('抖音极速版页面滑动成功!{}{}'.format(' '*3,time.strftime('%Y-%m-%d %H:%M:%S')))
        
    
    def 打开任务界面(self):
        d = u2.connect(self.ip)
        
        try:
            # d(resourceId="com.ss.android.ugc.aweme.lite:id/axz").click()#来赚钱
            d.click(0.500, 0.966)#点击底部来赚钱坐标
            #点击完成之后等待6秒,完成界面切换
            print('\r已进入抖音极速版任务页面!{}{}'.format(' '*3,time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(6)
        except :
            d.click(0.500, 0.966)#点击底部来赚钱
            print('\r已进入抖音极速版任务页面!{}{}'.format(' '*3,time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(6)
            
        # 已进入任务界面
        # 判断是否当天第一次进入的签到弹窗
        try:
            # 签到后的
            time.sleep(6)
            d(description="看广告视频再赚").click()
            # d.click(0.50, 0.626)#看广告视频再赚
            print('成功进入签到广告赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            print('请等待45秒!')
            time.sleep(45)
            d(text="关闭广告").click()
            print('已关闭签到广告!')
            d.xpath('//android.app.Dialog/android.view.View[1]/android.view.View[2]/android.view.View[1]/android.view.View[6]').click()
        except :
            pass
        
        
        d.swipe(0.5, 0.6, 0.5, 0.8)  # 向下滑动屏幕
        time.sleep(3)
        d.swipe(0.5, 0.6, 0.5, 0.8)  # 向下滑动屏幕
        time.sleep(3)
        
    
    def 限时任务赚金币(self):
        d = u2.connect(self.ip)
        # 如果未进入任务界面,则可能产生任务点击异常
        try:
            time.sleep(6)
            d(description="限时任务赚金币").click()
            # 点击任务后等待进入广告浏览
            print('成功进入限时任务赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            print('等待45秒后关闭广告浏览……')
            time.sleep(45)# 广告时长与进入广告等待时长之后
        except:
            print('无法进入限时任务。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        # 关闭广告,如果没有进入广告则会产生广告关闭异常
        try:
            d(text="关闭广告").click()
            print('限时任务广告浏览完成。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('限时任务广告关闭异常。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        #等待3秒页面响应时间
        time.sleep(6)
        
    
    def 宝箱任务赚金币(self):
        d = u2.connect(self.ip)
        # 点击开宝箱操作
       
        try:
            # d(description="开宝箱得金币").click()
            d.click(0.863, 0.921)# 宝箱坐标,固定坐标
            print('成功点击宝箱任务赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            # 点击后等待页面响应
            time.sleep(6)#设置页面响应时间为6秒
            # 看广告视频再赚
            # d(description="看广告视频再赚").click()
            d.click(0.50, 0.626)#看广告视频再赚
            # d.click(0.50, 0.678) # 将屏幕向下滑动两次后的坐标
            print('成功点击弹窗广告赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            #等待响应与广告时长等待
            print('等待45秒后关闭广告浏览……')
            time.sleep(45)# 广告时长与进入广告等待时长之后
        except :
            print('等倒计时结束后再来领取吧~')

        
        # 关闭广告,无广告则可能产生异常
        try:
            d(text="关闭广告").click()
            print('宝箱广告浏览完成。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('宝箱广告关闭异常。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))#等待3秒页面响应时间
            # 可能未进入广告页面
            # 尝试退出提现页面
            try:
                d(resourceId="com.ss.android.ugc.aweme.lite:id/jq").click()# 返回
            except:
                pass
        time.sleep(6)        
        
        

    def 关闭任务界面(self):
        d = u2.connect(self.ip)
        # 回到视频界面继续浏览
        d.swipe(0.5, 0.6, 0.5, 0.12)  # 向上滑动屏幕
        d(description="看视频,赚金币").click()
        # 点击后等待页面响应
        time.sleep(6)
    
        
        
    def 时间等待(self):
        mu=self.正态分布平均时间
        # print(mu)
        sigma=6
        t=random.normalvariate(mu,sigma)
        while t<=0 or t>=12:
            t=random.normalvariate(mu,sigma)

        self.任务累计时间=time.time()-self.初始任务时间
        while t>0:
            t=round(t,2)
            time.sleep(0.08)
            print('\r剩余等待时间:{:>5}秒'.format(str(t)),end='')
            t=t-0.08
            
    def 运行(self):
        self.启动抖音极速版()
        print('-'*16+'浏览视频APP正在启动'+'-'*16)
        while True:
            下一次任务时间=self.任务频率-self.任务累计时间/60
            if 下一次任务时间<0:
                下一次任务时间=0
            print('\r累计整点时间:{:.2f}分钟,距离任务还剩{:.2f}分钟'.format(self.任务累计时间/60,下一次任务时间))

            # self.启动抖音极速版()
            self.滑动抖音极速版()
            self.时间等待()

            if self.任务累计时间>self.任务频率*60:#满足任务时间间隔则进入任务界面,并将任务记时归零
                self.初始任务时间 = time.time()+120#延迟两分钟记时
                self.打开任务界面()
                self.限时任务赚金币()
                self.宝箱任务赚金币()
                self.关闭任务界面()
                self.初始任务时间 = time.time()#记时校正
            
        


我的手机=手机()

# 我的手机.运行()
while True:
    try:
        我的手机.运行()
    except :
        print('程序异常,即将重新启动!')

 

# -*- coding: utf-8 -*-
"""
Created on Tue Mar 10 19:24:06 2020

@author: 
"""



import uiautomator2 as u2
import time
import random

d = u2.connect('192.168.3.86')

print('连接成功!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))


def 滑动():
    d.swipe(0.5, 0.6, 0.5, 0.2)  # 滑动屏幕
    print('手机页面滑动成功!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))


def 签到():
    # 来赚钱 点击页面跳转,针对1080分辨率
    try:
        d.click(0.500, 0.966)#点击
        time.sleep(3)
        d.swipe(0.5, 0.6, 0.5, 0.8)  # 滑动屏幕
        time.sleep(3)
        d.swipe(0.5, 0.6, 0.5, 0.8)  # 滑动屏幕
        print('已进入任务界面{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    except:
        print('未进入任务界面{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    
    try:
        #d.click(0.50, 0.678).click()
        try:
            d(description="去领取").click()#d.click(0.50, 0.678)#j将屏幕向下滑动两次后的坐标
        except:
            d(description="已领取").click()
        print('可能已进入整点广告,等待20秒{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        time.sleep(20)
        
        
        try:
            d(text="关闭广告").click()
            time.sleep(3)
        except:
            print('关闭广告失败{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(3)
        
    except:
        print('已领取过整点广告{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))

    
    
    # 开宝箱
    try:
        d.click(0.863, 0.921)
        print('已完成点击开宝箱{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        time.sleep(3)
    # 看广告再赚
        try:
            
            #d(description="看广告视频再赚").click()
            d.click(0.50, 0.678)#j将屏幕向下滑动两次后的坐标
            print('可能已进入宝箱广告,等待20秒{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(20)
            d(text="关闭广告").click()
            print('已完成宝箱广告{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('无宝箱广告,等倒计时结束后再来领取吧{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    except:
        print('等倒计时结束后再来领取吧{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))

    try:
        time.sleep(3)
        d(description="去赚钱").click()
        print('可以继续观看视频了!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    except:
        print('返回失败!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))



def 运行(t1, t2):
    h = 3600
    while True:
        滑动()
        t = random.randint(t1, t2)
        print('将等待{}秒后继续……'.format(t))
        time.sleep(t)  # 暂停
        h = h + t
        print('距离下一次整点任务还剩{}秒'.format(3600-h))
        if h > 3600:
            # 签到看广告
            print('即将进入签到和广告浏览!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            签到()
            # 重置计时
            h = 0
        else:
            # print('继续!')
            pass


运行(1, 12)

3、(版本2)

# -*- coding: utf-8 -*-
"""
Created on Fri Mar 27 20:39:34 2020

@author: 
"""

import uiautomator2 as u2
import time
import random



class 手机:
    ip='192.168.3.85'
    t1=1
    t2=12
    h=3260
    正态分布平均时间=12


    def 启动(self):
        d = u2.connect(self.ip)
        #启动快手极速版
        d.app_start("com.ss.android.ugc.aweme.lite")
        #退出快手极速版
        #d.app_stop("com.kuaishou.nebula") #停止


    def 滑动(self):
        d = u2.connect(self.ip)
        d.swipe(0.5, 0.6, 0.5, 0.12)  # 滑动屏幕
        print('手机页面滑动成功!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))


    def 签到(self):
        d = u2.connect(self.ip)
        # 来赚钱 点击页面跳转,针对1080分辨率
        try:
            d.click(0.500, 0.966)#点击
            time.sleep(3)
            d.swipe(0.5, 0.6, 0.5, 0.8)  # 滑动屏幕
            time.sleep(3)
            d.swipe(0.5, 0.6, 0.5, 0.8)  # 滑动屏幕
            print('已进入任务界面{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('未进入任务界面{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            
            
        
        try:
            #d.click(0.50, 0.678).click()
            try:
                d(description="去领取").click()#d.click(0.50, 0.678)#j将屏幕向下滑动两次后的坐标
            except:
                d(description="已领取").click()
            print('可能已进入整点广告,等待20秒。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(20)
            
            
            try:
                d(text="关闭广告").click()
                time.sleep(3)
            except:
                print('关闭广告失败。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
                time.sleep(3)
            
        except:
            print('已领取过整点广告。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    
        
        
        # 开宝箱
        try:
            d.click(0.863, 0.921)
            print('已完成点击开宝箱。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(3)
        # 看广告再赚
            try:
                
                #d(description="看广告视频再赚").click()
                d.click(0.50, 0.678)#j将屏幕向下滑动两次后的坐标
                print('可能已进入宝箱广告,等待20秒。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
                time.sleep(20)
                d(text="关闭广告").click()
                print('已完成宝箱广告。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            except:
                print('无宝箱广告,等倒计时结束后再来领取吧。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('等倒计时结束后再来领取吧。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    
        try:
            time.sleep(3)
            d(description="去赚钱").click()
            print('可以继续观看视频了!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('返回失败!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            
    def 随机时间等待(self):
        t = random.randint(self.t1, self.t2)
        print('将等待{}秒后继续……'.format(t))
        self.h=self.h+t
        # print('self.h={}'.format(self.h))
        time.sleep(t)
        ct=3260-self.h
        if ct>0:
            print('距离下一次整点任务还剩{}秒!'.format(ct))
        else:
            print('即将进入整点任务。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    def 正态分布随机时间等待(self):
        mu=self.正态分布平均时间
        print('正态分布平均时间为:{}'.format(mu))
        sigma=6
        t = random.normalvariate(mu,sigma)
        #如果生成的随机时间不在指定范围,则重新按照正态分布生成随机时间
        while t<=0 or t>=15:
            t = random.normalvariate(mu,sigma)
        t=round(t,2)
        print('将等待{}秒后继续……'.format(t))
        self.h=self.h+t
        # print('self.h={}'.format(self.h))
        time.sleep(t)
        ct=3260-self.h
        ct=round(ct,2)
        if ct>0:
            print('距离下一次整点任务还剩{}秒!'.format(ct))
        else:
            print('即将进入整点任务。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))



def 运行():
    我的手机=手机()
    print('手机实例化完成!{}\n'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    ip=input('请输入IP地址:')
    if ip=='':
        pass
    else:
        我的手机.ip=ip
    h=input('距离下一次签到时间间隔为(分钟):')
    if h=='':
        pass
    else:
        我的手机.h=3260-eval(h)*60
    print('已设置滑动连接为{}的手机屏幕,请保持手机处于抖音极速版视频浏览界面!\n'.format(手机.ip,time.strftime('%Y-%m-%d %H:%M:%S')))
    mu=input('输入正态分布时间:')
    if mu=='':
        print('未输入正态分布时间,程序将采用随机整数时间间隔!')
    else:
        我的手机.正态分布平均时间=eval(mu)
        
        
        
        
    try:
        我的手机.启动()
        print('抖音启动完成!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    except:
        print('抖音启动失败,请手动启动抖音!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    time.sleep(3)
    
    i=0
    while True:
        try:
            我的手机.启动()#每次屏幕滑动前保持抖音极速版处于启动状态
            我的手机.滑动()
            #如果未指定正态分布时间,则采用随机整数时间间隔
            if mu=='':
                我的手机.随机时间等待()
            else:
                我的手机.正态分布随机时间等待()
            # print('我的手机.h={}秒'.format(我的手机.h))
            if 我的手机.h > 3260:
                # 签到看广告
                print('即将进入签到和广告浏览!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
                我的手机.签到()
                time.sleep(3)
                # 重置计时
                我的手机.h = 0
            else:
                # print('继续!')
                pass
        except:
            i=i+1
            print('操作失败,开始第{}次重试!'.format(i))

运行()

4、脚本3

# -*- coding: utf-8 -*-
"""
Created on Sat Mar 14 13:58:47 2020

@author: 
"""

import uiautomator2 as u2
import time
import random


ip=input('请输入局域网手机IP:')

d = u2.connect(ip)

print('IP:{}连接成功!{}'.format(ip,time.strftime('%Y-%m-%d %H:%M:%S')))


def 滑动():
    d.swipe(0.5, 0.6, 0.5, 0.12)  # 滑动屏幕
    print('{}手机页面滑动成功!{}'.format(ip,time.strftime('%Y-%m-%d %H:%M:%S')))
    
def 运行(mu, sigma):
    # 正态分布。 mu 是平均值,sigma 是标准差。
    while True:
        滑动()
        t=random.normalvariate(mu,sigma)
        while t<=0:
            #当随机数小于0,重新生成随机数
            t=random.normalvariate(mu,sigma)
        t=round(t,2)
        #对随机数保留两位小数
        print('将等待{}秒后继续……'.format(t))
        time.sleep(t)  # 暂停


mu=10
sigma=6
运行(mu, sigma)

5、类的使用

# -*- coding: utf-8 -*-
"""
Created on Sun Mar 15 10:38:08 2020

@author: 
"""

import uiautomator2 as u2
import time
import random

# 定义一个手机类
class 手机:
    '''
    mu=M
    '''
    def 时间等待(self,正态分布平均时间):
        mu=正态分布平均时间
        sigma=6
        t=random.normalvariate(mu,sigma)
        while t<=0 or t>=35:
            t=random.normalvariate(mu,sigma)
        # t=4
        while t>0:
            t=round(t,2)
            time.sleep(0.08)
            print('\r剩余等待时间:{:>5}秒'.format(str(t)),end='')
            t=t-0.08

    #
    def 向上滑动屏幕(self,IP地址):
        连接 = u2.connect(IP地址)
        连接.swipe(0.5, 0.6, 0.5, 0.12)  # 滑动屏幕
        print('\r手机页面滑动成功!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        


def main():
    print('请输按照提示输入程序参数。')
    IP=input('地址(IP):')
    M=input('时长(秒):')
    if IP=='' or M=='':
        IP="192.168.3.85"
        M=12
        print('\n默认参数如下:\n局域网IP:{}\n平均时长:{}秒\n'.format(IP,M))
        
    else:
        M=eval(M)
        print('\n程序参数如下:\n局域网IP:{}\n平均时长:{}秒\n'.format(IP,M))
        
    我的手机=手机()
    print('手机实例化完成!{}\n'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    while True:
        我的手机.向上滑动屏幕(IP)
        我的手机.时间等待(M)
        
if __name__ == "__main__":
    main()

6、类的使用版本(版本2)

# -*- coding: utf-8 -*-
"""
Created on Sun Mar 15 10:38:08 2020

@author: 
"""

import uiautomator2 as u2
import time
import random

# 定义一个手机类
class 手机:
    '''
    mu=M
    '''
    IP地址="192.168.137.74"
    正态分布平均时间=12
    软件='快手极速版'

    def 时间等待(self):
        mu=self.正态分布平均时间
        # print(mu)
        sigma=6
        t=random.normalvariate(mu,sigma)
        while t<=0 or t>=12:
            t=random.normalvariate(mu,sigma)
        # t=4
        while t>0:
            t=round(t,2)
            time.sleep(0.08)
            print('\r剩余等待时间:{:>5}秒'.format(str(t)),end='')
            t=t-0.08

    #
    def 向上滑动屏幕(self):
        连接 = u2.connect(self.IP地址)
        连接.swipe(0.5, 0.88, 0.5, 0.12)  # 滑动屏幕
        print('\r手机{}页面滑动成功!{}'.format(self.软件,time.strftime('%Y-%m-%d %H:%M:%S')))
        
    def 启动软件(self):
        连接 = u2.connect(self.IP地址)
        if self.软件=='快手极速版':
            #启动快手极速版
            连接.app_start("com.kuaishou.nebula")
            #退出快手极速版
            # d.app_stop("com.kuaishou.nebula") #停止
        elif self.软件=='抖音极速版':
            #启动抖音极速版
            连接.app_start("com.ss.android.ugc.aweme.lite")
            #退出抖音极速版
            # 连接.app_stop("com.ss.android.ugc.aweme.lite") #停止

        else:
            pass
        time.sleep(3)
        


def main(): 
    我的手机=手机()
    # 可变更的对象属性
    print('请输按照提示输入程序参数。')
    IP=input('输入手机地址(IP):')
    if IP=='':
        pass
    else:
        手机.IP地址=IP#对IP重新赋值
        
        
        
    M=input('输入滑动间隔时长(秒):')
    if M=='':
        pass
    else:
        手机.正态分布平均时间=eval(M)#对间隔正态分布平均时间重新赋值
        
    软件=input('输入软件名称:')
    if 软件=='':
        pass
    else:
        手机.软件=软件
    
    
    
    
    手机.IP地址
    手机.正态分布平均时间
    手机.软件
    print('即将滑动连接为{}的手机{}屏幕,平均时间为{}秒\n'.format(手机.IP地址,手机.软件,手机.正态分布平均时间))
    print('手机实例化完成!{}\n'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    print('----------ok----------')

    i=0
    while True:
        try:
            我的手机.启动软件()#软件
            我的手机.向上滑动屏幕()
            我的手机.时间等待()
        except:
            i=i+1
            print('开始第{}次重新开始'.format(i))
            print('即将滑动连接为{}的手机{}屏幕,平均时间为{}秒\n'.format(手机.IP地址,手机.软件,手机.正态分布平均时间))
        
        
if __name__ == "__main__":
    main()

7、(2020年04月16日更新)

# -*- coding: utf-8 -*-
"""
Created on Fri Mar 27 20:39:34 2020

@author: 
"""

import uiautomator2 as u2
import time
import random



class 手机:
    ip='192.168.3.85'
    t1=1
    t2=12
    h=3260
    正态分布平均时间=12


    def 启动抖音极速版(self):
        d = u2.connect(self.ip)
        #启动抖音极速版
        d.app_start("com.ss.android.ugc.aweme.lite")
        #退出快手极速版
        #d.app_stop("com.kuaishou.nebula") #停止
    def 启动快手极速版(self):
        d = u2.connect(self.ip)
        #启动快手极速版
        d.app_start("com.kuaishou.nebula")
        #退出快手极速版
        #d.app_stop("com.kuaishou.nebula") #停止


    def 滑动(self):
        d = u2.connect(self.ip)
        d.swipe(0.5, 0.6, 0.5, 0.12)  # 滑动屏幕
        print('手机页面滑动成功!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))


    def 签到(self):
        d = u2.connect(self.ip)
        # 来赚钱 点击页面跳转,针对1080分辨率
        try:
            d.click(0.500, 0.966)#点击底部来赚钱
            # d.click(0.139, 0.528)#点中部左侧
            time.sleep(3)
            d.swipe(0.5, 0.6, 0.5, 0.8)  # 滑动屏幕
            time.sleep(3)
            d.swipe(0.5, 0.6, 0.5, 0.8)  # 滑动屏幕
            print('已进入任务界面{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('未进入任务界面{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            
            
        
        try:
            #d.click(0.50, 0.678).click()
            try:
                d(description="去领取").click()#d.click(0.50, 0.678)#j将屏幕向下滑动两次后的坐标
            except:
                d(description="已领取").click()
                time.sleep(3)
            print('可能已进入整点广告,等待40秒。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(40)
            
            
            try:
                d(text="关闭广告").click()
                time.sleep(3)
            except:
                print('关闭广告失败。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
                time.sleep(3)
            
        except:
            print('已领取过整点广告。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    
        
        
        # 开宝箱
        try:
            d.click(0.863, 0.921)
            print('已完成点击开宝箱。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(3)
        # 看广告再赚
            try:
                
                #d(description="看广告视频再赚").click()
                d.click(0.50, 0.678)#j将屏幕向下滑动两次后的坐标
                print('可能已进入宝箱广告,等待40秒。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
                time.sleep(40)
                d(text="关闭广告").click()
                print('已完成宝箱广告。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            except:
                print('无宝箱广告,等倒计时结束后再来领取吧。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('等倒计时结束后再来领取吧。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    
        try:
            time.sleep(3)
            # d(description="去赚钱").click()  #去赚钱与走路去赚钱 冲突
            # d.click(0.479, 0.919)#看视频赚钱,"看视频,赚金币"
            d(description="看视频,赚金币").click()
            
            print('可以继续观看视频了!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('返回失败!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            
    def 随机时间等待(self):
        t = random.randint(self.t1, self.t2)
        print('将等待{}秒后继续……'.format(t))
        self.h=self.h+t
        # print('self.h={}'.format(self.h))
        time.sleep(t)
        ct=3260-self.h
        if ct>0:
            print('距离下一次整点任务还剩{}秒!'.format(ct))
        else:
            print('即将进入整点任务。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    def 正态分布随机时间等待(self):
        mu=self.正态分布平均时间
        print('正态分布平均时间为:{}'.format(mu))
        sigma=6
        t = random.normalvariate(mu,sigma)
        #如果生成的随机时间不在指定范围,则重新按照正态分布生成随机时间
        while t<=0 or t>=15:
            t = random.normalvariate(mu,sigma)
        t=round(t,2)
        print('将等待{}秒后继续……'.format(t))
        self.h=self.h+t
        # print('self.h={}'.format(self.h))
        time.sleep(t)
        ct=3200-self.h
        ct=round(ct,2)
        if ct>0:
            print('距离下一次整点任务还剩{}秒!'.format(ct))
        else:
            print('即将进入整点任务。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))



def 运行():
    我的手机=手机()
    print('手机实例化完成!{}\n'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    ip=input('请输入IP地址:')
    if ip=='':
        pass
    else:
        我的手机.ip=ip
    h=input('距离下一次签到时间间隔为(分钟):')
    if h=='':
        pass
    else:
        我的手机.h=3200-eval(h)*60
    print('已设置滑动连接为{}的手机屏幕,请保持手机处于抖音极速版视频浏览界面!\n'.format(手机.ip,time.strftime('%Y-%m-%d %H:%M:%S')))
    mu=input('输入正态分布时间:')
    if mu=='':
        print('未输入正态分布时间,程序将采用随机整数时间间隔!')
    else:
        我的手机.正态分布平均时间=eval(mu)
        
        
        
        
    try:
        我的手机.启动抖音极速版()
        print('抖音启动完成!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    except:
        print('抖音启动失败,请手动启动抖音!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
    time.sleep(3)
    
    i=0
    while True:
        try:
            # 我的手机.启动抖音极速版()#每次屏幕滑动前保持抖音极速版处于启动状态
            我的手机.滑动()
            #如果未指定正态分布时间,则采用随机整数时间间隔
            if mu=='':
                我的手机.随机时间等待()
            else:
                我的手机.正态分布随机时间等待()
            # print('我的手机.h={}秒'.format(我的手机.h))
            if 我的手机.h > 3200:
                我的手机.启动抖音极速版()#每次屏幕滑动前保持抖音极速版处于启动状态
                time.sleep(3)
                # 签到看广告
                print('即将进入签到和广告浏览!{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
                我的手机.签到()
                time.sleep(3)
                # 重置计时
                我的手机.h = 0
            else:
                # print('继续!')
                pass
        except:
            i=i+1
            print('操作失败,开始第{}次重试!'.format(i))

运行()

8、(2020年04月24日更新)

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 24 22:45:43 2020

@author: 
"""


import uiautomator2 as u2
import time
import random


class 手机:
    ip='192.168.3.85'
    切换时间间隔=2#APP切换时间间隔
    正态分布平均时间=6 #屏幕滑动时间间隔
    
    def __init__(self):
        # 记时
        
        try:
            距离任务剩余时长=eval(input('距离下一次签到还有多少分钟?\n'))#多少分钟之后可以进行来赚钱宝箱与限时任务
        except:
            距离任务剩余时长=0
            
        self.任务累计时间=60*60-60*距离任务剩余时长#已经浏览的视频时长(抖音+快手),或减去剩余时长
        self.切换累计时间=0
        self.初始任务时间 = time.time()-self.任务累计时间#初始化整点时间
        self.初始累计时间 = time.time()#初始化切换时间
        # 抖音与快手切换标识
        self.标识=1
        print('程序时间初始化完成!已设置距离下一次整点任务还有{}分钟'.format(距离任务剩余时长))

    def 启动抖音极速版(self):
        d = u2.connect(self.ip)
        #启动抖音极速版
        d.app_start("com.ss.android.ugc.aweme.lite")
        #退出快手极速版
        #d.app_stop("com.kuaishou.nebula") #停止
    def 启动快手极速版(self):
        d = u2.connect(self.ip)
        #启动快手极速版
        d.app_start("com.kuaishou.nebula")
        #退出快手极速版
        #d.app_stop("com.kuaishou.nebula") #停止


    def 滑动抖音极速版(self):
        d = u2.connect(self.ip)
        d.swipe(0.5, 0.6, 0.5, 0.12)  # 滑动屏幕
        # d.swipe(0.985, 0.8, 0.985, 0.12)  # 侧面滑动屏幕适用于抖音
        print('抖音极速版页面滑动成功!{}{}'.format(' '*3,time.strftime('%Y-%m-%d %H:%M:%S')))
        
    
    def 打开任务界面(self):
        d = u2.connect(self.ip)
        # d.click(0.500, 0.966)#点击底部来赚钱坐标
        try:
            d(resourceId="com.ss.android.ugc.aweme.lite:id/axz").click()#来赚钱
        #点击完成之后等待6秒,完成界面切换
            print('已进入抖音极速版任务页面!{}{}'.format(' '*3,time.strftime('%Y-%m-%d %H:%M:%S')))
            time.sleep(6)
        except :
            d.click(0.500, 0.966)#点击底部来赚钱
            time.sleep(6)
        
        d.swipe(0.5, 0.6, 0.5, 0.8)  # 向下滑动屏幕
        time.sleep(3)
        d.swipe(0.5, 0.6, 0.5, 0.8)  # 向下滑动屏幕
        time.sleep(3)
        
    
    def 限时任务赚金币(self):
        d = u2.connect(self.ip)
        # 如果未进入任务界面,则可能产生任务点击异常
        try:
            d(description="限时任务赚金币").click()
            # 点击任务后等待进入广告浏览
            print('成功进入限时任务赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
            print('等待45秒后关闭广告浏览……')
            time.sleep(45)# 广告时长与进入广告等待时长之后
        except:
            print('无法进入限时任务。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        # 关闭广告,如果没有进入广告则会产生广告关闭异常
        try:
            d(text="关闭广告").click()
            print('限时任务广告浏览完成。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('限时任务广告关闭异常。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        #等待3秒页面响应时间
        time.sleep(3)
        
    
    def 宝箱任务赚金币(self):
        d = u2.connect(self.ip)
        # 点击开宝箱操作
        d.click(0.863, 0.921)# 宝箱坐标,固定坐标
        print('成功点击宝箱任务赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        # 点击后等待页面响应
        time.sleep(6)#设置页面响应时间为6秒
        # 看广告视频再赚
        # d(description="看广告视频再赚").click()
        d.click(0.50, 0.678) # 将屏幕向下滑动两次后的坐标
        print('成功点击弹窗广告赚金币。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        #等待响应与广告时长等待
        print('等待45秒后关闭广告浏览……')
        time.sleep(45)# 广告时长与进入广告等待时长之后
        
        # 关闭广告,无广告则可能产生异常
        try:
            d(text="关闭广告").click()
            print('宝箱广告浏览完成。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))
        except:
            print('宝箱广告关闭异常。{}'.format(time.strftime('%Y-%m-%d %H:%M:%S')))#等待3秒页面响应时间
            # 可能未进入广告页面
            # 尝试退出提现页面
            try:
                d(resourceId="com.ss.android.ugc.aweme.lite:id/jq").click()
            except:
                pass
        time.sleep(3)        
        
        

    def 关闭任务界面(self):
        d = u2.connect(self.ip)
        # 回到视频界面继续浏览
        d.swipe(0.5, 0.6, 0.5, 0.12)  # 向上滑动屏幕
        d(description="看视频,赚金币").click()
        # 点击后等待页面响应
        time.sleep(3)
    
    
    def 滑动快手极速版(self):
        d = u2.connect(self.ip)
        # d.swipe(0.5, 0.6, 0.5, 0.12)  # 滑动屏幕
        d.swipe(0.985, 0.8, 0.985, 0.12)  # 侧面滑动屏幕适用于抖音
        print('快手极速版页面滑动成功!{}{}'.format(' '*3,time.strftime('%Y-%m-%d %H:%M:%S')))
        
        
    def 时间等待(self):
        mu=self.正态分布平均时间
        # print(mu)
        sigma=6
        t=random.normalvariate(mu,sigma)
        while t<=0 or t>=12:
            t=random.normalvariate(mu,sigma)

        self.切换累计时间=time.time()-self.初始累计时间
        self.任务累计时间=time.time()-self.初始任务时间
        while t>0:
            t=round(t,2)
            time.sleep(0.08)
            print('\r剩余等待时间:{:>5}秒'.format(str(t)),end='')
            t=t-0.08
            
    def 运行(self):
        # # 记时
        # self.累计时间=0
        # 距离任务剩余时长=0#多少分钟之后可以进行来赚钱宝箱与限时任务
        # self.任务时间=60*60-60*距离任务剩余时长#已经浏览的视频时长(抖音+快手),或减去剩余时长
        # # 抖音与快手切换标识
        # self.标识=1
        print('-'*16+'浏览APP启动'+'-'*16)
        while True:
            print('累计整点时间:{:.2f}h'.format(self.任务累计时间/60))
            if self.切换累计时间>=self.切换时间间隔*60:
                self.初始累计时间=time.time()
                self.标识=-self.标识
                if self.标识==1:
                    # 重置切换时间间隔
                    self.切换时间间隔=12#抖音极速版浏览时长
                    print('-'*16+'浏览视频APP已切换至抖音极速版'+'-'*16)

                    整点剩余时长=60-self.任务累计时间/60
                    if 整点剩余时长<0:
                        整点剩余时长=0
                    print('\r视频浏览时长累计{:.2f}分钟,距离抖音极速版赚钱任务还剩{:.2f}分钟'.format(self.任务累计时间/60,整点剩余时长))                      
                else:
                    self.切换时间间隔=6#快手极速版浏览时间
                    print('-'*16+'浏览视频APP已切换至快手极速版'+'-'*16)
                    
                
            
            
            if self.标识==1:
                self.启动抖音极速版()
                self.滑动抖音极速版()
                self.时间等待()
                切换时间=self.切换时间间隔-self.切换累计时间/60
                if 切换时间<0:
                    切换时间=0
                print('\r抖音极速版已浏览{:.2f}分钟,距离浏览快速极速版还剩{:.2f}分钟'.format(self.切换累计时间/60,切换时间))
                

                if self.任务累计时间>60*60:#满足任务时间间隔则进入任务界面,并将任务记时归零
                    self.初始任务时间 = time.time()
                    self.打开任务界面()
                    self.限时任务赚金币()
                    self.宝箱任务赚金币()
                    self.关闭任务界面()
            
            
            if self.标识==-1:
                self.启动快手极速版()
                self.滑动快手极速版()
                self.时间等待()
                切换时间=self.切换时间间隔-self.切换累计时间/60
                if 切换时间<0:
                    切换时间=0
                print('\r快手极速版已浏览{:.2f}分钟,距离浏览抖音极速版还剩{:.2f}分钟'.format(self.切换累计时间/60,切换时间))


我的手机=手机()
# 我的手机.运行()
while True:
    try:
        我的手机.运行()
    except :
        print('程序异常,即将重新启动!')

 

  • 8
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值