在写新的内容前,处理一下上一篇的内容:
1、有个代码错误,订正一下:
sec='adb shell am broadcast -a ADB_INPUT_TEXT –es msg '
这是一行,手机竖屏窄,看不全。正确如下:
sec1='adb shell am broadcast '
sec2='-a ADB_INPUT_TEXT --es msg '
sec=sec1+sec2
2、有朋友问,为嘛安装adb时总出错,一直不好用。
看了一下,安装ADB时候,它要检测系统内是否存在JDK,若不存在的话,肯定不好用啦。所以呢,安装ADB前,要安装一个JDK,java的,自己在网上搜搜,安装个可以用的。安装完JDK和ADB后,win系统要人工部署环境变量,配制环境变量的方法,网络上有很多,参考一下。
3、有朋友问屏幕位置换算的事儿。
那只旧手机的屏幕是5.7英寸,分辨率是720*1440,即x最大值是720,y最大值是1440。采用了笨方法:用格尺量出来的屏幕数据是横向6.45cm,纵向12.95cm,“说点什么……”的位置,即点击评论框的位置,横向1cm,纵向11.5cm,720/6.45=x/1,得出x=111.67,可以取111,也可以取112。1440/12.95=y/11.5 得出y=1278.76,可以取1278,也可以取1279,(与程序里的数据差12个像素,笨方法还是有误差的,需要测试出准确的位置)。
还有一个方法是,屏幕截屏,根据截屏产生的图片,找到点击的位置会更精确一些,包括输入法的提交按键位置,还可以将abcd那些按键的位置也找出来,作为数据备用,甚至可以编写个程序,点击虚拟键盘进行输入,说远了。
说完这些,上一篇的内容告一段落,还有疑问的地方可以继续私信。
————-万能分割线———————–
这一篇的内容是:使用python和adb共同完成电脑操控手机的内容,实现自动刷手机视频。刷视频的场景如下:当我们刷视频时,点开某一个视频app观看视频,当一个视频看完时,用手指在手机屏幕上向上划屏一次,继续观看视频,这种行为呢,叫做刷视频。本着让机器自己为我们刷的原则,让机器自己实现划屏,先找找网络上很多类似的帖子参考,然后一点一点地实践,最终达到实现完成机器自己刷的目的目的,在我们的干预下,让机器自动刷视频。
第一步,查找adb shell input相关文档,看看是否有可用的内容,找到个input swipe x1 y1 x2 y2 [duration(ms)]这个是adb提供的划屏工具,效果是从起始位置(x1,y1)经过多少毫秒划到终点位置(x2,y2),毫秒和秒的换算是千,1秒=1000毫秒,我们划一下屏有一秒么?估计没有,划屏时间长的话,手机不会认为是在换下一个视频。我们设定为300毫秒,必要的话,设置成200毫秒,实现快速划屏。
第二步,换算一下划屏的位置,起点设置为屏幕中间偏下,终点设置为屏幕中间偏上,躲开各种交互(搜索、点赞、评论、分享等等),从起点到终点的设置为2厘米。测出来的数据是,(x1,y1)=(3cm,6cm), (x2,y2)=(3cm,4cm),换算后是:x1=335 y1=666 x2=335 y2=444。
第三步,考虑每个视频观看时长,对,这个需要考虑一下,是依据视频长度来切换下一个视频,还是以固定时间来切换下一个视频,这里篇幅有限,我们设定为30秒,即每30秒换下一个视频。两个小时是7200秒,一共要划屏240次。
上程序:
import os
import time
startXY=' 335 666 ' #起始位置
endXY=' 335 444 ' #结束位置
drawTime=' 200 ' #划屏时间
seeTime=30 #看视频的时间
totalTime=2 #刷视频时长,以小时为单位
totalNum=totalTime*60*60//seeTime
first='adb shell input swipe '
loop_flag=True
j=0
while loop_flag:
os.system(first + startXY + endXY + drawTime )
time.sleep(seeTime)
j=j+1
if j==totalNum:
loop_flag=False
break
这段程序更短了吧,跑了几分钟,让手机自己刷,很舒服。重点说一下划屏时间,200毫秒是我这部老机子测出来的,不是所有的机器都是这样,这个要根据你的手机来确定,可能是划屏的距离短了,这里设置的是2厘米,可以长一些,4厘米的距离等等,这个需要实际测试才能得出具体的数字。第二个要说的是,看视频的时间即是程序延时的时间,这里设置的是30秒,可根据你自己的需要,是增加还是减少。
这个程序的缺点:
第一点:以刷视频时长作为一个指标了,2小时后这个程序终止。
第二点:对于那些有交互性质的视频广告可能会产生划不过去的情况,这个由于测试时间短,没刷到这种视频,这里提个醒。
第三点:看视频的时间是人为固定的30秒,并不是视频的时间长度,这里没有去判断视频的时间长度。可能还有其他缺点,暂时没发现。
好啦,《使用Python辅助刷视频》的内容就分享到这儿,祝各位挣钱愉快。
———————————–
如若转载,请注明出处:https://www.yiheng8.com/188527.html