Python 直接控制鼠标键盘
之前因为期末的原因已经很久没写博客了, 今天博主发现一个好玩的模块 PyAutoGUI, 借助它可以使用 Python 脚本直接控制键盘鼠标, 感觉可以解决很多无聊的机械运动这里记录一下学习情况
安装
$ sudo pip install pyautogui
安装的依赖包可能比较多, 只要耐心等待即可
基本使用
- screenWidth, screenHeight = pyautogui.size() # 屏幕尺寸
- mouseX, mouseY = pyautogui.position() # 返回当前鼠标位置, 注意坐标系统中左上方是 (0, 0)
为了保持用户可以随时干预鼠标键盘的动作, 比较好的方法是添加停顿, 或者强制结束, 否则想停了鼠标还一直在晃就会失控, 下面是两种对应的设置
pyautogui.PAUSE = 1.5# 每个函数执行后停顿 1.5 秒 pyautogui.FAILSAFE = True# 鼠标移到左上角会触发 FailSafeException,
因此快速移动鼠标到左上角也可以停止
鼠标操作
移动
- w, h = pyautogui.size()
- pyautogui.moveTo(w/2, h/2) # 基本移动
- pyautogui.moveTo(100, 200, duration=2) # 移动过程持续 2s 完成
- pyautogui.moveTo(None, 500) # X 方向不变, Y 方向移动到 500
- pyautogui.moveRel(-40, 500) # 相对位置移动
拖动
- # 点击 + 向下拖动
- pyautogui.click(941, 34, button=left)
- pyautogui.dragRel(0, 100, button=left, duration=5)
点击
- pyautogui.click(300, 400, button=right) # 包含了 move 的点击, 右键
- pyautogui.click(clicks=2, interval=0.25) # 双击, 间隔 0.25s
滚轮
pyautogui.scroll( - 10)
键盘操作
输入文字
点击对话框输入文字即可, 不过中文好像不行
- pyautogui.click(1279, 374)
- pyautogui.typewrite(hello world!)
精确控制键盘
一下是手动输入中文的方法
- pyautogui.press(shift) # 切换输入法的中英文
- pyautogui.press([#, ]) # press 可以对单个字符或者列表进行操作
- pyautogui.press([x, i, a, o])
- pyautogui.press([y, u])
- pyautogui.press([w, e, i])
- pyautogui.press([l, a, n])
- pyautogui.press( )
- # 潇雨危栏
- hotKey
- pyautogui.hotkey(shift, a) # 可以使用组合键, 本质上是
- pyautogui.keyDown(shift)
- pyautogui.keyDown(a)
- pyautogui.keyUp(shift)
- pyautogui.keyUp(a)
小结
PyAutoGUI 模拟了鼠标键盘的输入, 感觉机器好像被脚本操控了, 具体的应用还没想好, 感觉好像能解决一些爬虫的问题这个库的灵活之处在于应用无关性, 缺点也在于这一点
来源: http://www.bubuko.com/infodetail-2500380.html