Python|PyAutoGUI实现自动点赞收藏
最近公司要求每月要在某APP中完成1000积分的积累,算下来每月要点赞+收藏文章三百多篇。像我这样积极的青年当然要想办法偷个懒~
思路
该APP恰巧有网页版(没有网页版的话PC端估计还要搭建个安卓模拟器)。最开始尝试过通过requests库获取未读文章并更新积分,不过尝试了很多浏览器的伪装依然失败了😂😂后来考虑通过PyAutoGUI库实现模拟鼠标的操作。
PyAutoGUI是一个纯Python的GUI自动化库,可实现鼠标和键盘的操作。实现方式也很简单:打开目标网站,通过代码控制鼠标,打开未读的文章,并找到“点赞”和“收藏”的按钮坐标,完成点击+收藏操作后关闭该篇文章,之后更新未读文章后循环操作即可。
过程
实操下来就用了十几行代码,实测了五六分钟完成了100篇文章的处理,轻轻松松完成两百多积分的获取。事了拂衣去,深藏功与名~
源码如下
1 |
|
总结
PyAutoGUI相比requests、urllib库可以用更少的代码量解决此问题,免去了反爬虫的处理,但实际使用时还是发现了一些小的问题:因为是依靠屏幕坐标系完成鼠标的操作,在点赞、收藏图标位置变化(虽然频次很低)时不能很好的处理。我尝试过pyautogui.locateCenterOnScreen()去定位点赞和收藏按钮的具体位置来完成每一篇精准无误的点赞+收藏,但因为识别成功率和识别效率也没有很高就放弃了。即便如此,PyAutoGUI依旧是神器,助我顺利划水,轻松完成月度积分目标😁😁😁
PyAutoGUI库的功能有点像我前几年使用过的按键精灵、UIPath机器人。类似PyAutoGUI的python库还有win32gui、pywinauto等,后续有机会了再研究下。不可否认的是,作为一种解释性语言,python毫无疑问是值得我深入学习和使用的。
附:PyAutoGUI库基本用法整理
鼠标/键盘/提示框基本操作
1 |
|
识别图像
首先,我们需要先获得一个屏幕快照,例如我们想要点赞,我们就先把大拇指的图片保存下来;然后使用函数:locateOnScreen(‘zan.png’) ,如果可以找到图片,则返回图片的位置,如:Box(left=25, top=703, width=22, height=22);如果找不到图片,则返回None;
如果,屏幕上有多处图片可以匹配,则需要使用locateAllOnScreen(‘zan.png’) ,如果匹配到多个值,则返回一个list,参考如下:
1 |
|
pyautogui.center((left, top, width, height)) 返回指定位置的中心点;这样,我们就可以再配合鼠标操作点击找到图片的中心。
商业转载请联系作者获得授权,非商业转载请注明出处。
如果文章对你有帮助,欢迎点击上方按钮打赏作者