【pynput】鼠标行为追踪并模拟

2023-12-24 09:45

本文主要是介绍【pynput】鼠标行为追踪并模拟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 基本思路
  • 安装依赖包
  • 实时鼠标捕获
    • 捕获鼠标位置
    • 捕获鼠标事件
    • 记录点击内容
  • 效果图

利用本文内容从事的任何犯法行为和开发与本人无关,请理性利用技术服务大家,创建美好和谐的社会,让人们生活从繁琐中变得更加具有创造性!

前言

这前面文章中,提到了【实时屏幕捕获】的内容,这篇文章则是为大家介绍在现代计算机环境中,鼠标行为追踪的有效的方法,并通过记录和分析用户的鼠标操作,可以减少重复性工作,提高工作效率。尤其是在一些固定且重复的任务中,如接口测试、参数测试等,鼠标行为追踪为自动化提供了可能。

类似于手机上面的语言助手,不是有一个特定语言执行特定动作的功能吗,这个就类似于它,目前之所以做鼠标行为追踪并模拟是为了后面开展更加高级的功能。

基本思路

  1. 利用按键或时间限制捕获时间段
  2. 利用 OpenCV 实现鼠标位置点的追踪
  3. 记录每次操作位置点并回溯

安装依赖包

首先,我们需要安装所需的库。在终端或命令提示符中执行以下命令:

pip install opencv-python pyautogui numpy pynput

opencv-python:用于提供了丰富的图像处理和计算机视觉算法

pyautogui:用于捕获屏幕画面

numpy:用于处理大型多维数组和矩阵,以及执行与数据结构相关的数学运算

pynput:用于捕获以及控制鼠标和键盘

实时鼠标捕获

捕获鼠标位置

通过获取鼠标的位置,可以清晰地判断用户操作的区域:

from pynput import mouse as mos# 鼠标控制器
mouse = mos.Controller()
# 获取当前鼠标位置
mouse.position

在这里插入图片描述

捕获鼠标事件

鼠标事件有三种分为:鼠标移动、点击以及滚轮滚动:

# 移动监听
def on_move(x, y):print(f'鼠标移动到了:{(x, y)}')# 点击监听
def on_click(x, y, button, pressed):print(f'鼠标按键:{button},在位置处 {(x, y)}, {"按下了" if pressed else "释放了"} ')if not pressed:# 停止监听return False# 滚动监听
def on_scroll(x, y, dx, dy):print(f'滚动中... {"向下:" if dy < 0 else "向上:"}{(x, y)}')# 构造监听器对象
listener = mos.Listener(on_move=on_move,on_click=on_click,on_scroll=on_scroll)# 监听启动 
listener.start()

在这里插入图片描述

记录点击内容

根据鼠标点击来记录用户点击内容,可以有效地分析用户的行为和爱好,更好地像学徒一样去理解用户的行为,从而达到掌握其技巧:

import pyautogui
import numpy as np
import cv2user_click_pos = {'event': None, 'position': None}# 获取屏幕画面并保存
def save_screen():# 获取屏幕截图screenshot = pyautogui.screenshot()# 将截图转换为 OpenCV 格式screen_img = cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR)# 保存截图cv2.imwrite("screen_img.png", screen_img)# 点击监听并记录用户点击事件
def on_click(x, y, button, pressed):save_screen()user_click_pos['event'] = buttonuser_click_pos['position'] = (x, y)if not pressed:# 停止监听return False# 构造监听器对象
listener = mos.Listener(on_click=on_click)# 监听启动
listener.start()

在这里插入图片描述

效果图

在这里插入图片描述

这篇关于【pynput】鼠标行为追踪并模拟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5

Spring Boot 事务详解(事务传播行为、事务属性)

《SpringBoot事务详解(事务传播行为、事务属性)》SpringBoot提供了强大的事务管理功能,通过@Transactional注解可以方便地配置事务的传播行为和属性,本文将详细介绍Spr... 目录Spring Boot 事务详解引言声明式事务管理示例编程式事务管理示例事务传播行为1. REQUI

kotlin中的行为组件及高级用法

《kotlin中的行为组件及高级用法》Jetpack中的四大行为组件:WorkManager、DataBinding、Coroutines和Lifecycle,分别解决了后台任务调度、数据驱动UI、异... 目录WorkManager工作原理最佳实践Data Binding工作原理进阶技巧Coroutine

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排

SpringBoot如何使用TraceId日志链路追踪

《SpringBoot如何使用TraceId日志链路追踪》文章介绍了如何使用TraceId进行日志链路追踪,通过在日志中添加TraceId关键字,可以将同一次业务调用链上的日志串起来,本文通过实例代码... 目录项目场景:实现步骤1、pom.XML 依赖2、整合logback,打印日志,logback-sp

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象