17370845950

换个姿势「模拟登录」

今天老肥将为大家介绍一个python库pyuserinput,这个库集成了pymouse和pykeyboard两个模块,可以模拟鼠标和键盘的操作,堪称轻量级的按键精灵。

我们可以利用这个库来执行一些重复的机械操作,或者作为小游戏的脚本。正如俗话所说,工欲善其事,必先利其器,我们首先需要安装PyUserInput。

根据不同的操作系统,模块安装需要不同的依赖:

  • Linux - Xlib
  • Mac - Quartz, AppKit
  • Windows - pywin32, pyHook

在Windows系统中,pywin32已经默认安装,我们只需安装pyHook。pyHook的下载链接可在「阅读原文」中找到。

下载与您电脑相匹配的版本后,进入该whl文件所在的位置,输入以下命令即可完成安装。

pip install xxxxxx.whl

安装完依赖后,我们只需在命令行中输入以下命令即可完成PyUserInput的安装。

pip install PyUserInput

接下来是简单的使用方法。首先,我们需要导入pymouse和pykeyboard库,并创建鼠标和键盘对象。

from pymouse import PyMouse
from pykeyboard import PyKeyboard

m = PyMouse() k = PyKeyboard()

关于鼠标的操作,以下是示例代码:

x_dim, y_dim = m.screen_size()  # 获取屏幕尺寸
m.move(100, 100)  # 移动鼠标到某坐标,该坐标以左上角为(0,0)
m.click(100, 100, 1, 1)  # 在(100, 100)的位置单击左键一次

在click方法中,前两个参数为位置坐标,第三个参数为按键选项,1表示鼠标左键,2表示右键,而最后一个参数表示点击次数。

关于键盘的操作,以下是示例代码:

k.type_string("Laofei NB!")  # 输入字符串
k.press_key("S")  # 按下S键
k.release_key("S")  # 松开S键
k.tap_key("S")  # 点击S键

此外,我们还可以使用组合按键,例如最常用的复制操作Ctrl+C。我们先按下Ctrl键,再点击C键,最后释放Ctrl键,完成这个操作。

k.press_key(k.control_key)
k.tap_key('c')
k.release_key(k.control_key)

在掌握了基础操作后,我们可以进行实战,利用Python模拟鼠标和键盘的操作来登录。相比之前使用Selenium,今天我们将尝试另一种方法来模拟登录。

思路非常清晰:首先用鼠标定位,键盘输入邮箱账号和密码,然后用鼠标拖动滑块至底部,最后点击登录按钮完成登录。

# 输入邮箱账号以及密码
m.move(590,370)
m.click(590,370,1,1)
k.type_string('laofei@520.com')
time.sleep(1)
m.move(590,440)
m.click(590,440,1,1)
k.type_string('memeda')
time.sleep(1)

拖动滑块

m.move(590,510) m.press(590,510,1) time.sleep(1) m.move(1000,500) time.sleep(2)

点击登录按钮

m.click(590,600)

整个登录过程流畅无阻,如下图所示。