Python 控制鼠标的终极指南:从入门到自动化实战
本文介绍了使用Python库PyAutoGUI实现鼠标自动化操作的全流程指南。主要内容包括:PyAutoGUI的跨平台特性与优势、快速安装方法、核心API速查表(移动/点击/拖拽等),以及三个实战案例:绘制方形螺旋图案、网页自动投票脚本和批量删除AI对话记录。文章还提供了调试技巧(如实时坐标显示、权限设置)和常见问题解决方案,并推荐了OpenCV图像识别、打包exe等进阶方向。通过10分钟学习即可
·
Python 控制鼠标的终极指南:从入门到自动化实战
无论你是想写个「抢红包脚本」,还是做「自动化测试」,这篇文章都能让你 10 分钟上手 PyAutoGUI,并带你完成两个可直接运行的实战案例。
一、为什么选择 PyAutoGUI?
特性 | 说明 |
---|---|
跨平台 | Windows / macOS / Linux 全支持 |
零依赖 | 纯 Python,pip 一行搞定 |
API 友好 | 移动、点击、拖拽、截图一条龙 |
自带“后悔药” | 鼠标甩到左上角即可紧急刹车 |
二、5 分钟环境搭建
# 1. 建议先建虚拟环境(可选)
python -m venv venv
source venv/bin/activate # Windows 用 venv\Scripts\activate
# 2. 安装
pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple
清华镜像加速,国内同学必备。
三、API 速查表(收藏备用)
功能 | 一行代码 |
---|---|
获取屏幕宽高 | w, h = pyautogui.size() |
获取当前坐标 | x, y = pyautogui.position() |
绝对移动 | pyautogui.moveTo(800, 500, duration=0.5) |
相对移动 | pyautogui.moveRel(100, -50) |
单击 / 双击 / 右击 | .click() / .doubleClick() / .rightClick() |
拖拽 | pyautogui.dragTo(900, 600, duration=1) |
滚轮 | pyautogui.scroll(5) # 正数向上 |
安全刹车 | 默认启用,鼠标瞬移到左上角触发 FailSafeException |
四、实战 1:自动画「方形螺旋」
打开 Windows 画图或任何绘图软件,运行脚本即可欣赏“灵魂画手”。
import pyautogui, time
pyautogui.PAUSE = 0.05 # 每一步暂停 50ms,动画效果
time.sleep(3) # 给你 3 秒切到画板
distance = 200
while distance > 0:
pyautogui.dragRel(distance, 0) # 右
distance -= 10
pyautogui.dragRel(0, distance) # 下
pyautogui.dragRel(-distance, 0) # 左
pyautogui.dragRel(0, -distance) # 上
五、实战 2:批量点击「网页 100 次投票」
很多活动限制 IP,但先别管反爬,我们先学思路。
import pyautogui, time, random
# 1. 手动把浏览器投票按钮放到屏幕固定位置,记下坐标
VOTE_BUTTON = (860, 480)
# 2. 每 3 秒投一次,加入随机偏移防检测
for i in range(100):
x, y = VOTE_BUTTON
x += random.randint(-5, 5)
y += random.randint(-5, 5)
pyautogui.click(x, y)
time.sleep(3 + random.random()) # 3~4 秒随机等待
进阶:
- 加
pyautogui.screenshot()
截图记录 - 用
selenium
接管浏览器,实现后台无头投票(需换思路)
六、实战三:删除AI对话
俗话说:重复的事情机器做
import pyautogui, time
# 1. 手动把浏览器删除按钮放到屏幕固定位置,记下坐标
DELETE_BUTTON = (1160, 300)
# 先等待 10 秒
time.sleep(10)
# 2. 循环点击 100 次
for i in range(100):
x, y = DELETE_BUTTON
pyautogui.click(x, y)
time.sleep(2) # 2 秒等待
# 弹出对话框,询问是否删除,确认删除,记下坐标
DELETE_CONFIRM = (x - 300, y + 200)
pyautogui.click(DELETE_CONFIRM)
time.sleep(2) # 2 秒等待
七、踩坑 & 调试技巧
- 坐标不准?
pyautogui.displayMousePosition()
彩色实时显示坐标,终端神器。 - 高分屏 DPI 缩放?
Windows 设置 → 显示 → 缩放改成 100%,否则坐标会飘。 - 权限问题(macOS)
系统偏好设置 → 安全性与隐私 → 辅助功能 → 勾选你的终端 / IDE。 - 脚本停不下来?
把鼠标甩到左上角触发FailSafeException
,或 Ctrl+C 强杀。
八、总结 & 下一步
恭喜你,已经能用 Python 让鼠标“自己动”了!
如果想继续深入:
- 结合
opencv-python
做「基于图像识别的点击」 - 打包成
.exe
发给不会装环境的朋友 - 研究
pynput
实现「监听 + 回放」宏功能
如果文章帮到了你,记得点赞、收藏、关注三连!评论区欢迎贴上你的脑洞脚本~
更多推荐
所有评论(0)