pynput 鼠标键盘按键精灵
官方网址:https://pypi.org/project/pynput/
查询其详细API文档,可以参考 https://pynput.readthedocs.io/en/latest/index.html
pynput这个库让你可以控制和监控输入设备。
对于每一种输入设备,它包含一个子包来控制和监控该种输入设备:
- pynput.mouse:包含控制和监控鼠标或者触摸板的类。
- pynput.keyboard:包含控制和监控键盘的类。
这个库核心可以监测控制我们的键盘和鼠标,看起来用在爬虫上面也是非常不错的
安装
pip install pynput
基本用法
安装完毕,测试一下该库是否可以正常运行,运行结果是获取当前鼠标的坐标
from pynput.mouse import Button, Controller
mouse = Controller()
# 获取鼠标坐标
print('当前鼠标的坐标是 {0}'.format(mouse.position))
from pynput.mouse import Button, Controller
import time
#set pointer positon
mouse.position = (277, 645)
print('now we have moved it to {0}'.format(mouse.position))
#鼠标移动(x,y)个距离
mouse.move(5, -5)
print(mouse.position)
mouse.press(Button.left)
mouse.release(Button.left)
#Double click
mouse.click(Button.left, 1)
#scroll two steps down
mouse.scroll(0, 500)
鼠标监控事件
from pynput import mouse
def on_move(x, y ):
print('Pointer moved to {0}'.format((x,y)))
def on_click(x, y , button, pressed):
print('{0} at {1}'.format('Pressed' if pressed else 'Released', (x, y)))
if not pressed:
return False
def on_scroll(x, y ,dx, dy):
print('scrolled {0} at {1}'.format('down' if dy < 0 else 'up',(x, y)))
while True:
with mouse.Listener( on_move = on_move,on_click = on_click,on_scroll = on_scroll) as listener:
listener.join()
键盘输入用法
from pynput.keyboard import Key, Controller
keyboard = Controller()
# 按下空格和释放空格
# Press and release space
keyboard.press(Key.space)
keyboard.release(Key.space)
# 按下a键和释放a键
# Type a lower case A ;this will work even if no key on the physical keyboard is labelled 'A'
keyboard.press('a')
keyboard.release('a')
# Type two upper case As
keyboard.press('A')
keyboard.release('A')
# or
with keyboard.pressed(Key.shift):
keyboard.press('a')
keyboard.release('a')
# type 'hello world ' using the shortcut type method
keyboard.type('hello world')
键盘监听
from pynput import keyboard
def on_press(key):
try:
print('alphanumeric key {0} pressed'.format(key.char))
except AttributeError:
print('special key {0} pressed'.format(key))
def on_release(key):
print('{0} released'.format(key))
if key == keyboard.Key.esc:
return False
while True:
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
假如你女朋友不回你消息,你可以这么玩
不停的给她发消息
你要换成中文输入法状态
微信QQ都可以
from pynput import keyboard
from pynput.mouse import Button, Controller
from pynput.keyboard import Key
import time
import random
time.sleep(3)
my_mouse = Controller()
my_keyboard = keyboard.Controller()
i = 0
while i < 100:
i += 1
if i != 100:
mes = ['xiangni', 'aini', 'zaiganmane', 'laopo']
my_keyboard.type(random.choice(mes))
my_keyboard.press(Key.space)
my_keyboard.release(Key.space)
my_mouse.position = (1689, 773)
my_mouse.press(Button.left)
my_mouse.release(Button.left)
time.sleep(2)
else:
break
女朋友感动哭了(当然,你得先有个女朋友)