击败无聊的办公室重复操作,用 Python 控制鼠标和键盘
作者 | 小帅b
来源 | 学习python的正确姿势
还在为需要在电脑做一些重复的点击或者提交表单等操作而苦恼吗?
如果告诉你能通过 Python 预先写好相关的操作指令,让它帮你操作鼠标和键盘,而你翘着二郎腿和妹子聊着天岂不是美滋滋?
一、pyautogui库
我们可以先安装一下 pyautogui 这个库,通过它你就可以写一些 Python 脚本来控制你的鼠标和键盘了,比如你可以定义鼠标在哪个位置点击,定义键盘在什么时候输入什么内容等,从而达到自动化操作所有你想要操作的软件应用,值得说的一点是,他可以运行在 Win、MacOS、Linux平台上。
你可以通过 pip 进行安装:
python3 -m pip install pyautogui
源码:https://github.com/asweigart/pyautogui
pip主页:https://pypi.org/project/PyAutoGUI/
二、操作鼠标
安装完之后,就可以使用它了,比如我们现在想要知道鼠标的位置就可以通过 position 方法获取:
![b57db082dd236f0c1be36bc92e201504.webp](https://filescdn.proginn.com/b868b4f32ceb445c1903af4d8caa1aee/b57db082dd236f0c1be36bc92e201504.webp)
也可以写一个方法来实时获取鼠标的位置:
![5c048cb47869cbe0422ba2afed175724.webp](https://filescdn.proginn.com/a0b313d74c0c03e767257c73f9011287/5c048cb47869cbe0422ba2afed175724.webp)
通过 while 循环不断监听鼠标当前的位置,运行一波就是这样:
![13db25d1ab97f1dde74a739092962fd5.webp](https://filescdn.proginn.com/747f338714af1b43c336ebbdb2aa38e2/13db25d1ab97f1dde74a739092962fd5.webp)
想要调用鼠标的点击方法可以这样:
单击:
>>> pyautogui.click()
右击:
>>> pyautogui.click(button='right')
双击:
>>> pyautogui.doubleClick()
比如现在我的桌面有一张帅照:
![70265cdb2437c9d2aee1cb5e0b53fe06.webp](https://filescdn.proginn.com/f2fb17e42c8152da794a15fb195802be/70265cdb2437c9d2aee1cb5e0b53fe06.webp)
想使用 Python 来操作鼠标去打开它,那么就可以这样,把鼠标轻轻的放在帅照上面,然后获取一下鼠标在这个位置的坐标:
![7261e06c2d225e894c337bebf1671659.webp](https://filescdn.proginn.com/5606b1f285c9f4f40c323443ec09d985/7261e06c2d225e894c337bebf1671659.webp)
可以发现这张照片的位置是在 (74,197),那么就可以调用鼠标的双击方法:
![ae8db09a9aae38e2d251b8ea7a723abb.webp](https://filescdn.proginn.com/584ebd5d1e696d8769d90f22b8fa3347/ae8db09a9aae38e2d251b8ea7a723abb.webp)
我们在 doubleClick 方法中传入了坐标位置,所以它可以将鼠标移动的位置进行双击。
当然,你也可以调用 moveTo 方法来移动鼠标,比如让鼠标移动到 100,200 的位置就可以这样:
pg.moveTo(100,200,2)
![fd2097fcd21c92821259117c3a83e629.webp](https://filescdn.proginn.com/833806fd1d30605b67fac194be0a8005/fd2097fcd21c92821259117c3a83e629.webp)
这里的 2 是移动秒数的意思,默认为 0.1 ,快速移动的那种。
想要拖拽鼠标,可以调用 dragTo 方法,比如:
pg.dragTo(300, 400, 2, button='left')
![b9a8e4bd3d1ddf88bd8df469fab80a27.webp](https://filescdn.proginn.com/8381eebf1518b633799f6bfe560c1dbe/b9a8e4bd3d1ddf88bd8df469fab80a27.webp)
表示的是从当前位置拖动到指定坐标的位置,其中的 2 代表移动时间,button 可以设置是左键还是右键。
![d40511edc550558793b485e14009711a.webp](https://filescdn.proginn.com/62fe38b3507aaee931b0d547f580c5dc/d40511edc550558793b485e14009711a.webp)
三、操作键盘
接着我们来操作键盘
可以同过 press 来调用键盘的操作,比如:
按下回车:
>>> pyautogui.press('enter')
按下左键:
>>> pyautogui.press('left')
按下 CTRL:
>>> pyautogui.press('ctrl')
快捷键的话可以使用 hotkey 方法,比如:
按下 Ctrl + Shift + T:
>>> pyautogui.hotkey('ctrl', 'shift', 't')
复制:>>> pyautogui.hotkey('ctrl', 'c')
按住不动可以使用 keyDown 方法,释放按键可以使用 keyUp 方法,比如:
切换窗口:
![ed917d84c880c400e3a86b4de5ed3d95.webp](https://filescdn.proginn.com/848132e7767c9ae4dfce4edfd0a3b586/ed917d84c880c400e3a86b4de5ed3d95.webp)
运行一波就是这样:
![cd57cc218e15394bf0b876cc77070e6f.webp](https://filescdn.proginn.com/e9bade8454d9e43dc07838266bf3c567/cd57cc218e15394bf0b876cc77070e6f.webp)
刚刚的 pg.PAUSE=1 指的是每隔一秒执行一个操作指令。
想要控制键盘输入内容,可以使用 write 方法,比如:
输入 fxxkpython:
pg.write('fxxk Python !', interval=0.3)
![56fa4480a6ab7816c7ed4de0ecbf69a8.webp](https://filescdn.proginn.com/4a45f8bf7c7b4ba6c1543d62e81f06cc/56fa4480a6ab7816c7ed4de0ecbf69a8.webp)
四、案例
知道了这些你就可以去玩一些有意思的事了,举几个简单的例子给你乐呵乐呵。
比如指定它去浏览器搜索内容:
![e8fd844fa2637f50d5987b20e911025e.webp](https://filescdn.proginn.com/4494a75bcbbd1e8bf4497221510e935a/e8fd844fa2637f50d5987b20e911025e.webp)
运行一波就是这样:
![8eb1f5318ce0b01b465ee48cd1b3c7ad.webp](https://filescdn.proginn.com/d3a0e17cea7b62777a1e478c87a67c4a/8eb1f5318ce0b01b465ee48cd1b3c7ad.webp)
是不是有点 selenium 的内味了。
又比如操作它去微信聊天:
![3dcbdd4302e7cec3ee33eab9044d5e8c.webp](https://filescdn.proginn.com/fffeca5593c4a0fbefccdc434d34bd06/3dcbdd4302e7cec3ee33eab9044d5e8c.webp)
运行一波:
![37197b94223f0c6d1506fd2176180c07.webp](https://filescdn.proginn.com/b3e18db1bb22c8cec9fcc274988c3650/37197b94223f0c6d1506fd2176180c07.webp)
再举一个官方的例子,你可以让它去画图:
![d00ec02d7682b6fe94a1dea6266b18bb.webp](https://filescdn.proginn.com/421967e42ece78c1b2dbe898eecbe6ea/d00ec02d7682b6fe94a1dea6266b18bb.webp)
运行一波就是这样:
![3edf68955d9cd59c9762a641b6fc0b54.webp](https://filescdn.proginn.com/a1da4938b684a78bf1bb5ea339c1b0fa/3edf68955d9cd59c9762a641b6fc0b54.webp)
ok,以上就是小帅b今天给你带来的分享,看完这个,自动填写表单啥的不在话下了吧?希望对你有帮助,那么我们下回见,peace!
评论