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 秒等待

七、踩坑 & 调试技巧

  1. 坐标不准?
    pyautogui.displayMousePosition() 彩色实时显示坐标,终端神器。
  2. 高分屏 DPI 缩放?
    Windows 设置 → 显示 → 缩放改成 100%,否则坐标会飘。
  3. 权限问题(macOS)
    系统偏好设置 → 安全性与隐私 → 辅助功能 → 勾选你的终端 / IDE。
  4. 脚本停不下来?
    把鼠标甩到左上角触发 FailSafeException,或 Ctrl+C 强杀。

八、总结 & 下一步

恭喜你,已经能用 Python 让鼠标“自己动”了!
如果想继续深入:

  • 结合 opencv-python 做「基于图像识别的点击」
  • 打包成 .exe 发给不会装环境的朋友
  • 研究 pynput 实现「监听 + 回放」宏功能

如果文章帮到了你,记得点赞、收藏、关注三连!评论区欢迎贴上你的脑洞脚本~

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐