常见的免费网络推广工具有哪些,8类免费实用网络营销工具推荐
程序员文章站
2024-03-26 16:39:35
我看到有很多人在卖一款软件,价格还有点小贵。我就想着能不能自己做一款分享给你们,现在我来讲一讲我这个demo的思路。利用python去控制咱们的手机,这样的话全天24小时你可以解放你自己的双手,功能的...
我看到有很多人在卖一款软件,价格还有点小贵。我就想着能不能自己做一款分享给你们,现在我来讲一讲我这个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')