0
点赞
收藏
分享

微信扫一扫

PyUserInput 上手指南,解放你的双手~

引言

学完C#后来看Python真是倍感亲切,各式的样的nb的库拿来就是用。越来越觉得“人生苦短,我用python”太真实了~

今天做了一个小项目,主要任务是爬取RESSET数据库中的数据,有几百万条,人工采集实在是不现实,所以想到了爬虫,但以前爬取数据都是用selenium或者requests或者urllib(因为本人太菜,scrapy还没学会)三个库结合基本能够爬取现有的许多主流网站。但是有一说一,各种数据库的反扒也是魔高一尺,道高一丈,各种反扒方式眼花缭乱。所以今天想到了新办法,就是模拟电脑鼠标和键盘操作逐步点击来采集数据。
具体的项目源码我在做完以后会上传到git上面。

正文

1.安装

依赖包
根据你使用的操作系统,需要为PyUserInput安装依赖包:

  • Linux:Xlib (python-xlib)
  • Mac:Quartz, AppKit
  • Windows:pywin32, pyHook

如果未成功安装上述依赖包,那么在安装PyUserInput时就会报错。

Windows 依赖包

因为我没有接触过其他系统,所以这里只介绍一下Windows上的PyUserInput

Windows系统安装PyUserInput依赖两个库pywin32pyHook,其中 pywin32直接在cmd模式下pip即可,代码如下:

pip install pywin32

而pyHook这个库就比较难搞了,一般直接pip是会报错的,看了几篇博客发现主要的问题是因为 python版本和 pyHook版本不适配
下面是我的解决步骤:

1) 在官网下载pyHook第三方库

pyHook下载地址直通车:https://www.lfd.uci.edu/~gohlke/pythonlibs/

往下滑找到pyHook即可,下载后扔到桌面。
a311b477a3ab71b68362d847d100695.png

2) 安装一个能够与pyHook版本适配的python版本

025933d78acc98338c3db390f239b65.png

我这里下载的pyHook是cp37,所以安装的python版本也是37(最好和之前的python版本放在同一文件夹里)

python下载直通车:https://www.python.org/downloads/windows/

3) 修改pycharm的编译器环境

依次点击:
文件——设置——项目——python解释器——【后续步骤如下图】
ae690c8cdf459c89e6e427b5a406313.png
找到自己python版本的地址加入即可

4) 安装需要的库

修改环境后就可以在cmd模式下安装pyHook了,打开cmd模式安装即可4f6ff77060aeab7f8c8f3a51e12d4da.png

安装成功~(里面提示pip版本问题,可以直接忽略)

2.PyUserInput基本操作

这一部分先上我查阅到写的相当nice的博客,然后再补充自己的

2.1 键盘操作

from pykeyboard import PyKeyboard

# 实例化
k = PyKeyboard()

# 打印一个字符 按下+释放
k.press_key('g')
k.release_key('g')

# 打印一个字符 自动完成: 按下+释放
k.tap_key('6')
# 打印一个字符 n次 每隔interval秒
k.tap_key('6', n=2, interval=2)

# 打印字符串 不支持中文
k.type_string('abc')

# 点击数字X 3次
k.tap_key(k.numpad_keys[6], 3)

# 点击功能键 F5
k.tap_key(k.function_keys[5])

# 组合键
# 例如:alt+f
k.press_key(k.alt_key)
k.tap_key('f')
k.release_key(k.alt_key)

2.2 鼠标操作

from pymouse import PyMouse

# 实例化
m = PyMouse()

# 鼠标左右键
# m.click(x,y,button,n)
# x, y 表示坐标
# Button: 1 = left, 2 = right, 3 = middle
# n表示点击次数
m.click(10, 10, 2, 2)

# 屏幕分辨率
x_s, y_s = m.screen_size()
print('{}  {}'.format(x_s, y_s))

# 获取鼠标当前位置
m_x_position, m_y_position = m.position()
print(m_x_position, m_y_position)

# 移动鼠标到固定位置
# m.move(x, y)  x: x坐标  y: y坐标
m.move(100,100)
原文链接:https://blog.csdn.net/zx77588023/article/details/105885074

但说实话实操起来还是有很多地方让我卡住,所以又去查阅了官方文档,然并卵信息更少QAQ,当然还是链接甩给大家,感兴趣的可以自己去看看,虽然都是英文,翻译一下还是可以读一读的。
点击进入PyUserInput官方文档

2.3 收官之笔

当你使用代码补全的时候会发现有许多操作就在里面,而且字如其名,很容易理解!!!总之这个库还是很容易上手的,除了安装的时候恶心到我了,但是万事开头难嘛~

ab81804bc52896774e5648193aa3042.png

==需要注意的一点:使用快捷键来运行程序可能导致某些操作无法正常进行,所以都是鼠标右键“运行代码”的。==

举报

相关推荐

0 条评论