我看到有很多人在卖一款软件,价格还有点小贵。我就想着能不能自己做一款分享给你们,现在我来讲一讲我这个demo的思路。
利用Python去控制咱们的手机,这样的话全天24小时你可以解放你自己的双手,功能的话可以根据自己的需求多样化。
既然要控制手机,那么咱们需要利用到一个工具 ADB ,这个东西叫做安卓控制桥梁,显而易见,只能控制Android系统。学过逆向的同学对这款工具应该不陌生吧?
我们今天来做个小案例,实现dy自动关注脚本。
第一步:利用Python来对手机进行截屏并保存图片
def sreencap(): os.system('adb shell screencap -p /sdcard/screen.png') os.system('adb pull /sdcard/screen.png')
第二步:找坐标
在这里我就不讲其它的思路了,直接讲我的思路。根据颜色差进行判断点击,首先我们可以发现每个关注的按钮它的横坐标是不变的,变动的只有纵坐标
那么我们可以去查看当前某个点的横坐标位置作为定值
很明显可以看到咱们的屏幕像素为1080X1920,而注字的那个顶点位置的横坐标为929至于纵坐标1483这个值对我们没有任何意思,当你往下移动看到另一个注字的时候,横坐标929不变,纵坐标会发生变化。
此时有人会想到每个注字之间的距离是一致的,那么能不能每隔一段距离就点击一下呢?
不行,如果是这种情况你该如何?第一次的点击位置在哪里如何确定?
第三步:找出颜色差
可以发现这个顶点位置的RGB颜色值为(254,76,111),那么思路就来了,取X为定值929,遍历Y坐标1920,判断这条线上的所有像素点,是否有颜色值为(254,76,111)的,如果有,就取出这个点,然后进行模拟点击不就好了吗?
def getY_position(): y_list=[] image = Image.open('screen.png') for i in [929]: for y in range(1920): if image.getpixel((i,y)) == (254, 76, 111, 255): y_list.append(y) return y_list
第四步:模拟点击
y_position = getY_position()for y in y_position: os.system('adb shell input tap 929 {}'.format(y))
你以为这样就结束了? NO! 咱们还需要翻页,往下滑动呀!
os.system('adb shell input swipe X1 Y1 X2 Y2')
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。