Python 做模拟鼠标操作,这个思路可以么。

2021-01-07 18:56:02 +08:00
 jmyz0455

一好哥们干市场营销,老吐槽公司用的垃圾统计软件,只能导出一个分页的 Excel 数据。想要多导出几个分页的内 容,只能手动下载几次 Excel 然后手动合并表,效率贼低。要求软件公司加功能一直都没下文,问我能不能用代码 帮帮他。

最近上班闲了,答应给他搞,一开始我的想法就是用 Fiddler 抓包发请求,结果发现软件居然用了单点登录,每次 代码登录后就把他踢下线了,不完美。所以我想到了用 python 写一个模拟操作程序,我的思路如下:

  1. 获取 Windows 窗口句柄,把软件移到 (0,0) 的位置。
  2. 网上搜到个用于识别文字的 pytesseract 库,识别软件某个区域的文字是否等于期望值。
  3. 接 2. 为真的时候,网上搜到个用于移动鼠标到 PyAutoGUI 库,点击对应坐标完成操作。
  4. 如果 2. 遇到了图片,网上搜到个用于图像对比的 Pillow 库,通过对比颜色分布或灰度辨认是不是期望图片。
  5. 最后把下载到的 Excel 文件用 xlrd 和 csv 模块转换成 CSV 文件然后拼接数据再转换成 Excel 文件。

我没写过模拟操作,上面用到的库和模块都是搜出来的,大概想法就是这样,因为没有经验,所以想听听大家的意见,思路有没有可以改进的地方,库和模块有没有更符合需求的,谢谢。

2176 次点击
所在节点    Python
10 条回复
delectate
2021-01-07 19:23:31 +08:00
根据经验,尽量不要用 ocr 、简述操作这样的不靠谱的方式。用也要用 selenium 这种,或者想办法抓包,找到 xlsx 的下载地址。
jmyz0455
2021-01-07 20:14:03 +08:00
@delectate 不靠谱嘛,我以为很多游戏都是用真机开程序和脚本开刷的。
这个统计软件是 .exe 程序,selenium 行不通。抓包抓到了,但是 xlsx 下载地址是个 api,要带 token 才不会 403 拒绝请求。
而获得 token 要先跑登陆接口,登陆这一下就把我朋友的账号踢了,他登陆要管理员授权,也挺麻烦的。
ml1344677
2021-01-08 17:27:52 +08:00
大漠插件了解一下
exip
2021-01-09 22:04:08 +08:00
获取 token 重放
jmyz0455
2021-01-10 09:24:51 +08:00
@ml1344677 看上去是个脚本精灵的插件?阿这连 python 都不用了,我还以为练练手来着。
jmyz0455
2021-01-10 09:26:03 +08:00
@exip 请问重放是什么意思?我一拿 token (登陆)这一步就会把我朋友挤下线。
sk2580
2021-01-11 17:33:40 +08:00
1 、使用图像识别稳定性好一点,参考 opencv templatematch ()、配合 mouse 库。
实现“点击图像”,截图哪里点哪里
2 、百度 rpa 。有各种 rpa 软件,例如影刀。。。内置了这个"点击图像"功能
sunshijie
2021-01-11 17:46:29 +08:00
自己写一个启动脚本
1.启动 mitmproxy
2.启动 exe
3.登陆完后把 token 存入 txt
4.一个 py 文件读取 token 进行操作 生成 excel
jmyz0455
2021-01-17 17:39:55 +08:00
@sk2580 好的谢谢,我先试一下这个 rpa
jmyz0455
2021-01-17 17:41:15 +08:00
@sunshijie token 我懂了,就是把 token 抓下来,然后我的朋友就不会挤下线,这个思路好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/742657

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX