当前位置 : 主页 > 编程语言 > python >

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

来源:互联网 收集:自由互联 发布时间:2022-07-20
引言 学完C++后来看Python真是倍感亲切,各式各样nb的库拿来就是用。越来越觉得“人生苦短,我用python”太真实了。 今天做了一个小项目,主要任务是爬取RESSET数据库中的数据,有几百

引言

学完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依赖两个库pywin32和pyHook,其中 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

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

【文章原创作者:高防ip http://www.558idc.com/gfip.html欢迎留下您的宝贵建议】
网友评论