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

2023-10-07 22:40

本文主要是介绍Python微信自动抢红包程序(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 = 1B = pyautogui.locateCenterOnScreen("IMAGES/3.png", confidence=0.7)if B:flag_A = 0print('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 = 0pyautogui.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)
#这可以指定区域

 

这篇关于Python微信自动抢红包程序(OpenCV,pyautogui)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/160925

相关文章

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息