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
julayanhe
V2EX  ›  Python

关于办公自动化的一个案例,求教下实现的方向

  •  
  •   julayanhe · 2022-01-31 10:02:42 +08:00 · 6963 次点击
    这是一个创建于 1024 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位大佬新年好,我这里有一个现实问题向大佬们请教:

    今天虽然是除夕了,但疫情形势仍然严峻,家人是基层工作者,有统计数据并做标记的临时工作。

    具体内容是:根据 excel 表格里的数据,比如:姓名和手机号,到查询系统(网页端)查询相关信息,把返回的信息回填到该人所在的行。

    家人一直是手动完成,非常繁琐耗时。我想这个工作应该可以自动化进行,请教下各位如何实现,到哪里找相关的工具或资料呢?

    本人是理科学生,有科学计算的需要所以 Python 能用,JavaScript 也接触过,这两种语言都可以尝试。

    谢谢各位。

    40 条回复    2022-03-03 20:50:12 +08:00
    dlsflh
        1
    dlsflh  
       2022-01-31 10:09:13 +08:00 via Android
    Pyautogui
    dlsflh
        2
    dlsflh  
       2022-01-31 10:14:26 +08:00 via Android   ❤️ 1
    用 pyautogui 的时候推荐使用 snipaste 加快写脚本的速度。
    mouyong
        3
    mouyong  
       2022-01-31 10:19:05 +08:00   ❤️ 1
    python + selenium 搭配即可。
    julayanhe
        4
    julayanhe  
    OP
       2022-01-31 10:20:47 +08:00
    @dlsflh 谢谢。

    这似乎是按键精灵式的自动化实现?因为有些数据不是正确的,所以还得考虑到查询系统报错或者不返回信息的情况
    julayanhe
        5
    julayanhe  
    OP
       2022-01-31 10:22:45 +08:00
    @mouyong 我研究下,谢谢您,祝新年快乐。
    sairoa
        6
    sairoa  
       2022-01-31 10:31:48 +08:00
    推荐个好东西 https://curl.trillworks.com/ ,在浏览器里直接抓到查询请求,然后在这个网站里转成 python 代码,接下来就是变量替换、excel 处理问题了。
    EvanLuo42
        7
    EvanLuo42  
       2022-01-31 10:48:23 +08:00 via iPhone
    py 搭配 request 库模拟表单提交就可以了
    kokutou
        8
    kokutou  
       2022-01-31 11:07:57 +08:00
    https://www.bilibili.com/video/BV1T34y1o73U

    基于截图的

    5 分钟拿来就能用
    kokutou
        9
    kokutou  
       2022-01-31 11:09:08 +08:00
    获取信息可以找到截图坐标,
    然后控制点击移动鼠标选择, 再控制键盘输入 ctrl+c
    这样获取信息.
    stonewu
        10
    stonewu  
       2022-01-31 11:22:27 +08:00
    用微软自带的 power automate
    binux
        11
    binux  
       2022-01-31 11:29:56 +08:00 via Android
    其实,excel 公式或许就够了。。
    EscYezi
        12
    EscYezi  
       2022-01-31 11:30:59 +08:00 via iPhone
    一般来说请求带着 cookie 就有登录态了,有个方案是 python 脚本读 Excel ,带着 cookie 请求网站接口,然后根据返回的数据写回 excel
    Hellert
        13
    Hellert  
       2022-01-31 11:31:20 +08:00 via Android
    这种需求,看似简单,要做好不容易的。

    还不如给配个大显示器,教会怎么并排窗口,怎么使用 win+v 剪切板历史,来提高手工操作的效率来的靠谱。
    defunct9
        14
    defunct9  
       2022-01-31 11:50:28 +08:00
    python 。我们公司有个上线系统,非常难用。后来我们就自己开发了个 python 程序,首先去 excel 拿到要处理的数据,然后根据这个数据去上线系统查询到哦上线机器,然后再自己一个一个去发 url 请求上线。基本满足你这个需求了。
    ila
        15
    ila  
       2022-01-31 11:58:41 +08:00 via Android   ❤️ 2
    1. 读 excel
    2. requests 网页
    3. 解析网页
    4. 写 excel
    musi
        16
    musi  
       2022-01-31 12:13:37 +08:00
    简单是挺简单的,不过要控制好查询的速度,不然把网站打挂了就不大好了
    mouyong
        17
    mouyong  
       2022-01-31 12:18:06 +08:00
    @julayanhe
    进程 1. python 读取 excel 后,写入 redis hash 与 list 中。
    进程 2. 从 list 中 pop 出一条数据,查询 hash 对应的信息,通过 selenium 打开网页,定位登录框、查询框,录入信息;通过 BrowserMob Proxy (推荐)或 ajax hook (没体验过),拦截 ajax 信息,解析、入库 mysql 。
    通过 php laravel + dcat-admin 编写网页后台,提供查询展示等功能。信息整合完毕后导出新的需要的 excel 。

    进程 2 可设置定时任务,定时爬取。

    我有这样的实现方案。可联系我微信 1254075921 ,遇到问题可以解答。
    mouyong
        18
    mouyong  
       2022-01-31 12:20:38 +08:00
    40 条信息的核对,别人要花 4~6 小时的工作。排除研发耗时 5 天。后续每次只需要等 9s ,所有人需要等待 6 分钟左右。且可以根据自己的心意安排玩耍了。
    awkward
        20
    awkward  
       2022-01-31 13:05:04 +08:00
    微软的 power automate
    julayanhe
        21
    julayanhe  
    OP
       2022-01-31 13:42:22 +08:00
    谢谢各位大佬的回答,今天的临时任务我就手动完成了。

    不过后面还会有很多类似的工作。我会好好研究下各位的意见。

    祝大家新年快乐。
    imn1
        22
    imn1  
       2022-01-31 14:20:23 +08:00
    这个事情我建议结合实际工作要慎重考虑
    全自动是难的,半自动容易一点(自动请求、自动填写,但中间是人工判断)
    如果正常返回,一般都很顺畅,难点全在非正常返回的情况,例如找不到、网络错误等等

    最后,重点重点重点 ——
    如果出现漏填、填错的情况,你的家人是否要担责?
    如果要,我觉得还是半自动吧,一定要有人工判断的步骤,不然你的程序没考虑完全所有“非正常返回”的情况,出现错漏,引致家人担责,那才是大问题

    如果懂 pyqt ,我建议写个 webview ,把前面请求和最后分析页面用程序自动,减少打字、复制粘贴的操作,但中间查询的步骤,显示在 webview ,由人工判断“查询成功”还是“失败”
    jsq2627
        23
    jsq2627  
       2022-01-31 14:40:11 +08:00
    这就是 RPA 领域的典型场景了

    推荐使用 UiPath 或者 Power Automate
    inframe
        24
    inframe  
       2022-01-31 15:29:10 +08:00
    pandas 读取
    每一行数据,
    requests 发送请求解析结果
    pandas 再写回去;
    snw
        25
    snw  
       2022-01-31 15:49:42 +08:00 via Android
    如果网页端没有反爬措施的话,用 Excel 自带的 Power Query 就可以(数据 -> 获取与转换),完全不需要 python 等外部应用。
    lijiext
        26
    lijiext  
       2022-01-31 16:44:19 +08:00
    对用 RPA 就可以解决,国产很多解决方案
    xy90321
        27
    xy90321  
       2022-01-31 17:24:26 +08:00 via iPhone
    完全自动化先不说,至少通过公式拼个 url 参数、又或者拼成 js 代码直接 dom 赋值输入是可以一下子实现的,这也能明显提升效率、降低错误率了
    li02
        28
    li02  
       2022-01-31 19:26:13 +08:00 via Android
    在线编辑的文档不是很多,腾讯文档,钉钉文档,飞书文档不够用吗
    ji39
        29
    ji39  
       2022-01-31 19:58:13 +08:00
    别让人知道你做的那么快,就怕后台能查询到你的录入速度,搞半自动最好,保证不错且速度能自己掌握
    miyuki
        30
    miyuki  
       2022-01-31 22:58:20 +08:00
    简单一些的可以考虑 VBA

    之前遇到了一些模板填写(需要保留格式),表自带保护,一些库而且也不保留格式,最后用 VBA 搞定了
    wxb2dyj
        31
    wxb2dyj  
       2022-01-31 23:15:50 +08:00 via iPhone
    推三楼。我自己就是这么做的。
    meathill
        32
    meathill  
       2022-01-31 23:28:46 +08:00
    Excel 存成 csv ,然后配合 js 很容易。不过需要的知识面并不少,不知道你现学来不来得及。
    dingyaguang117
        33
    dingyaguang117  
       2022-02-01 01:09:40 +08:00
    excel 可以直接写脚本的,VBS
    ch2
        34
    ch2  
       2022-02-01 12:04:30 +08:00 via iPhone
    Python requests+openpyxl
    darkengine
        35
    darkengine  
       2022-02-01 22:02:52 +08:00
    如果这个网页有验证码,就比较难受了
    levenwindy
        36
    levenwindy  
       2022-02-02 00:17:47 +08:00
    34L +1 ,Python requests+openpyxl (如果有反爬就用 selenium 代替 requests )
    上个月刚好在弄,https://www.v2ex.com/t/827117
    前几天又把 LOL 过往每个英雄的 KDA 都按日期统计出来了
    https://imgur.com/8nCZuAD
    看楼主描述,实现这需求不难
    haoxuexiaoyao
        37
    haoxuexiaoyao  
       2022-02-02 13:33:32 +08:00
    UI.Vision RPA 浏览器自动化工具 可以读 Excel,进行自动化查询,然后自动保存到表格
    lyz1990
        38
    lyz1990  
       2022-02-03 09:43:12 +08:00 via Android
    https://www.litrpa.com/
    试试类似这种 RPA 的东西
    Alias4ck
        39
    Alias4ck  
       2022-02-09 11:11:11 +08:00
    最简单的应该是用 vba 写个 宏
    stonesirsir
        40
    stonesirsir  
       2022-03-03 20:50:12 +08:00
    @darkengine 就这个就很难受了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1192 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 18:23 · PVG 02:23 · LAX 10:23 · JFK 13:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.