引言
学完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即可,下载后扔到桌面。
2) 安装一个能够与pyHook版本适配的python版本
我这里下载的pyHook是cp37,所以安装的python版本也是37(最好和之前的python版本放在同一文件夹里)
python下载直通车:https://www.python.org/downloads/windows/3) 修改pycharm的编译器环境
依次点击:文件——设置——项目——python解释器——【后续步骤如下图】找到自己python版本的地址加入即可
4) 安装需要的库
修改环境后就可以在cmd模式下安装pyHook了,打开cmd模式安装即可
安装成功~(里面提示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 收官之笔
当你使用代码补全的时候会发现有许多操作就在里面,而且字如其名,很容易理解!!!总之这个库还是很容易上手的,除了安装的时候恶心到我了,但是万事开头难嘛~
==需要注意的一点:使用快捷键来运行程序可能导致某些操作无法正常进行,所以都是鼠标右键“运行代码”的。==
【文章原创作者:高防ip http://www.558idc.com/gfip.html欢迎留下您的宝贵建议】