笔记记录下来,以免东西到处都是,最后忘得一干二净。
先简单说一下我想实现一个什么功能:
最近不是有个微视吗,里面有红包视频(虽然只有一分两分的),我就想自动抢微视里面的红包(哈哈哈,发家致富第一步)
主要思路
控制手机滑动视频
获取手机信息
判断是不是红包视频
打开红包
(大概是这样的)
ADB安装
百度了一下就发现,要控制手机需要这个东东。于是网上下载了一个进行安装:http://adbdriver.com/downloads
不过安装了之后并不会用,又百度资料
- adb devices ,这个命令是可以看到当前连接的Android设备;
像这样的。
- adb version 这个查看adb版本,要注意版本一致
- 好,废话不多说,adb安装了就是要把手机调到开发者模式并打开usb调试。这样才能在python下操作。
注:一开始用手机可以直接完成控制,后面用到夜神模拟器,发现链接不上,百度后知道是adb版本不一致导致的。系统只会开一个adb,所以尽量做到python下的ack下的和cmd下的统一版本。如果不统一,直接找到各个adb.exe进行复制替换。将夜神安装目录下的nox_adb备份为nox_adb.back,然后把最开始下载安装的adb复制到夜神目录下命名为nox_adb。搞定版本一致的问题。
控制手机第一步
如何给手机指令,请自行百度adb命令,我这里只用到也只会这几个指令:
1、adb shell input tap x y
:触摸一下屏幕的x,y位置。直接给数字就行。
2、abd shell input swipe x y x1 y1
:滑动屏幕,具体如何滑动就要看x,y,x1,y1的值了,例如我要向上滑动那我x = x1= 300随便给个值,y>y1就行了。因为默认的图像的左上角为坐标原点,直接上图,从x,y滑动到x1,y1,y>y1向上,y<y1向下。如果x=x1,y=y1,那么和点一下屏幕一样一样的了。
上代码:
os.system('adb shell input swipe 300 800 300 600')
这里用到了os这个库。所以最开始的位置要import os。
获取当前手机截图
既然控制了手机了,那我就需要知道手机在干什么了,那么我就需要截图上传,并且进行图片的判断和处理。
- 手机截图:
os.system("adb shell /system/bin/screencap -p /sdcard/3.png")# 命令1:在手机上截图并保存为3.png os.system("adb pull /sdcard/3.png d:/3.png")#命令2:将手机上的图片上传到电脑 d:/3.png
当然也有一步到位的方法就是直接把截图上传到电脑,不在手机上存储了:
os.system("adb shell /system/bin/screencap -p d:\\3.png")
但是说实话,这个东西很慢,我设置的1080*1920的分辨率,一个截图要传0.7秒以上,加上系统操作的时间,让我的感受就是很