V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
jmyz0455
V2EX  ›  Python

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

  •  
  •   jmyz0455 · 2021-01-07 18:56:02 +08:00 · 2402 次点击
    这是一个创建于 1448 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    10 条回复    2021-01-17 17:41:15 +08:00
    delectate
        1
    delectate  
       2021-01-07 19:23:31 +08:00
    根据经验,尽量不要用 ocr 、简述操作这样的不靠谱的方式。用也要用 selenium 这种,或者想办法抓包,找到 xlsx 的下载地址。
    jmyz0455
        2
    jmyz0455  
    OP
       2021-01-07 20:14:03 +08:00
    @delectate 不靠谱嘛,我以为很多游戏都是用真机开程序和脚本开刷的。
    这个统计软件是 .exe 程序,selenium 行不通。抓包抓到了,但是 xlsx 下载地址是个 api,要带 token 才不会 403 拒绝请求。
    而获得 token 要先跑登陆接口,登陆这一下就把我朋友的账号踢了,他登陆要管理员授权,也挺麻烦的。
    ml1344677
        3
    ml1344677  
       2021-01-08 17:27:52 +08:00
    大漠插件了解一下
    exip
        4
    exip  
       2021-01-09 22:04:08 +08:00 via Android
    获取 token 重放
    jmyz0455
        5
    jmyz0455  
    OP
       2021-01-10 09:24:51 +08:00
    @ml1344677 看上去是个脚本精灵的插件?阿这连 python 都不用了,我还以为练练手来着。
    jmyz0455
        6
    jmyz0455  
    OP
       2021-01-10 09:26:03 +08:00
    @exip 请问重放是什么意思?我一拿 token (登陆)这一步就会把我朋友挤下线。
    sk2580
        7
    sk2580  
       2021-01-11 17:33:40 +08:00
    1 、使用图像识别稳定性好一点,参考 opencv templatematch ()、配合 mouse 库。
    实现“点击图像”,截图哪里点哪里
    2 、百度 rpa 。有各种 rpa 软件,例如影刀。。。内置了这个"点击图像"功能
    sunshijie
        8
    sunshijie  
       2021-01-11 17:46:29 +08:00
    自己写一个启动脚本
    1.启动 mitmproxy
    2.启动 exe
    3.登陆完后把 token 存入 txt
    4.一个 py 文件读取 token 进行操作 生成 excel
    jmyz0455
        9
    jmyz0455  
    OP
       2021-01-17 17:39:55 +08:00
    @sk2580 好的谢谢,我先试一下这个 rpa
    jmyz0455
        10
    jmyz0455  
    OP
       2021-01-17 17:41:15 +08:00
    @sunshijie token 我懂了,就是把 token 抓下来,然后我的朋友就不会挤下线,这个思路好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5406 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:56 · PVG 16:56 · LAX 00:56 · JFK 03:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.