Python微信自动抢红包程序(OpenCV,pyautogui)

Python微信自动抢红包程序(OpenCV,pyautogui)微信自动抢红包教程有很多 有通过分析安卓组件写的 由于对 java 不熟悉 就想通过监视电脑屏幕的方法做 也就是 OpenCV 或者卷积神经网络 刚好以前项目做到过 在查询资料的过程中有发现一个神奇的库 pyautogui 这个库可以很方便的控制鼠标和键盘 也可以识别屏幕元素 做模板匹配

大家好,我是讯享网,很高兴认识大家。

微信自动抢红包教程有很多,有通过分析安卓组件写的,由于对java不熟悉,就想通过监视电脑屏幕的方法做,也就是OpenCV,或者卷积神经网络,刚好以前项目做到过。在查询资料的过程中有发现一个神奇的库——pyautogui。这个库可以很方便的控制鼠标和键盘。也可以识别屏幕元素,做模板匹配,翻看它的源码发现了cv2这个函数,仔细一看,也是用的OpenCV这个库。

ps:电脑用的是模拟器。

好的,废话不多说,上干货。

import pyautogui import time import random # pyautogui.PAUSE = 1 print("请输入's'开始") a = input() flag_A = 0 # 1065,37 region = (0, 0, 1920, 1080) while a == 's': while 1: start_time = time.time() A = pyautogui.locateCenterOnScreen("IMAGES/0.png", confidence=0.7) rad_num = random.randint(-20, 20) if A: print('A') if flag_A == 0: pyautogui.click(A[0] + rad_num, A[1] + rad_num) flag_A = 1 B = pyautogui.locateCenterOnScreen("IMAGES/3.png", confidence=0.7) if B: flag_A = 0 print('B') pyautogui.click(B[0] + rad_num, B[1] + rad_num) time.sleep(3) pyautogui.press('esc') end_time = time.time() print(f"the running time is: {end_time - start_time} s") time.sleep(2) C = pyautogui.locateCenterOnScreen("IMAGES/man.png", confidence=0.7) if C: flag_A = 0 pyautogui.press('esc') print(flag_A) 

讯享网

大体原理就是看到没领的红包鼠标点过去点开然后退出。遇到抢完的红包直接退出。


讯享网

里面三个图片对于是这样的,下载到不同的电脑上需要自己截图保存在IMAGES这个文件夹内。

关于pyautogui库的使用网上有很多,这里给出一些常用的用法。

讯享网 #读取图片,图片名不能用中文:笑死、、、、、(opencv?) #常用函数: # 移动鼠标 pyautogui.moveTo(200,400,duration=2) pyautogui.moveRel(200,500,duration=2) 第一行是将鼠标移动到指定的像素(200,400)位置,第二行代码是将鼠标按照当前点向右移动200px,向下移动400px这个方向移动。正表示右下负表示左上 print(pyautogui.position()) # 得到当前鼠标位置;输出:Point(x=200, y=800) # 点击鼠标 pyautogui.click(10,10) # 鼠标点击指定位置,默认左键 pyautogui.click(10,10,button='left') # 单击左键 pyautogui.click(1000,300,button='right') # 单击右键 pyautogui.click(1000,300,button='middle') # 单击中间 pyautogui.doubleClick(10,10) # 指定位置,双击左键 pyautogui.rightClick(10,10) # 指定位置,双击右键 pyautogui.middleClick(10,10) # 指定位置,双击中键 #拖动到指定位置 pyautogui.dragTo(100,300,duration=1) #将鼠标拖动到指定的坐标;duration 的作用是设置移动时间,所有的gui函数都有这个参数,而且都是可选参数; #按方向拖动 pyautogui.dragRel(100,500,duration=4) # 第一个参数是左右移动像素值,第二个是上下, #向右拖动100px,向下拖动500px, 这个过程持续 1 秒钟; pyautogui.scroll(300) # 向上滚动300个单位; #屏幕截图 im = pyautogui.screenshot() im.save('Screenshots/屏幕截图.png') #屏幕识别 import pyautogui pyautogui.PAUSE = 1 # 图像识别(一个) btm = pyautogui.locateOnScreen('zan.png') print(btm) # Box(left=1280, top=344, width=22, height=22) # 图像识别(多个) btm = pyautogui.locateAllOnScreen('zan.png') print(list(btm)) # [Box(left=1280, top=344, width=22, height=22), Box(left=25, top=594, width=22, height=22)] #直接获得中心坐标 x, y = pyautogui.locateCenterOnScreen('IMAGES/已领取.png') pyautogui.click(x, y) #键盘输出 keyDown():模拟按键按下 keyUP():模拟按键松开 press():模拟一次按键过程,即 keyDown 和 keyUP 的组合 typewrite():模拟键盘输出内容 #eg: pyautogui.keyDown('shift') pyautogui.press('1') pyautogui.keyUp('shift') #运行上面的代码,如果你的鼠标是放在编辑框中,你会得到一个感叹号 pyautogui.typewrite('python', 1) #第一个参数是输出的内容,第二个参数是间隔时间,单位是秒。 #运行上面代码,你的编辑器里面就会每隔1秒钟按顺序输出 python 的6个字母。 pyautogui.typewrite(['p','y','t','h','o','n','enter']) 运行上面代码,编辑器里面就会输出 python 之后换行。 pyautogui.hotkey('ctrl','c') #和 pyautogui.keyDown('ctrl') pyautogui.keyDown('c') pyautogui.keyUp('c') pyautogui.keyUp('ctrl') # 相同 #屏幕截图 img = pyautogui.screenshot() region = (300,400,606,500) img = pyautogui.screenshot(region=region) #这可以指定区域

 

小讯
上一篇 2025-03-15 23:35
下一篇 2025-03-19 16:54

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/75896.html