各位大佬新年好,我这里有一个现实问题向大佬们请教:
今天虽然是除夕了,但疫情形势仍然严峻,家人是基层工作者,有统计数据并做标记的临时工作。
具体内容是:根据 excel 表格里的数据,比如:姓名和手机号,到查询系统(网页端)查询相关信息,把返回的信息回填到该人所在的行。
家人一直是手动完成,非常繁琐耗时。我想这个工作应该可以自动化进行,请教下各位如何实现,到哪里找相关的工具或资料呢?
本人是理科学生,有科学计算的需要所以 Python 能用,JavaScript 也接触过,这两种语言都可以尝试。
谢谢各位。
1
dlsflh 2022-01-31 10:09:13 +08:00 via Android
Pyautogui
|
2
dlsflh 2022-01-31 10:14:26 +08:00 via Android 1
用 pyautogui 的时候推荐使用 snipaste 加快写脚本的速度。
|
3
mouyong 2022-01-31 10:19:05 +08:00 1
python + selenium 搭配即可。
|
4
julayanhe OP |
6
sairoa 2022-01-31 10:31:48 +08:00
推荐个好东西 https://curl.trillworks.com/ ,在浏览器里直接抓到查询请求,然后在这个网站里转成 python 代码,接下来就是变量替换、excel 处理问题了。
|
7
EvanLuo42 2022-01-31 10:48:23 +08:00 via iPhone
py 搭配 request 库模拟表单提交就可以了
|
8
kokutou 2022-01-31 11:07:57 +08:00
|
9
kokutou 2022-01-31 11:09:08 +08:00
获取信息可以找到截图坐标,
然后控制点击移动鼠标选择, 再控制键盘输入 ctrl+c 这样获取信息. |
10
stonewu 2022-01-31 11:22:27 +08:00
用微软自带的 power automate
|
11
binux 2022-01-31 11:29:56 +08:00 via Android
其实,excel 公式或许就够了。。
|
12
EscYezi 2022-01-31 11:30:59 +08:00 via iPhone
一般来说请求带着 cookie 就有登录态了,有个方案是 python 脚本读 Excel ,带着 cookie 请求网站接口,然后根据返回的数据写回 excel
|
13
Hellert 2022-01-31 11:31:20 +08:00 via Android
这种需求,看似简单,要做好不容易的。
还不如给配个大显示器,教会怎么并排窗口,怎么使用 win+v 剪切板历史,来提高手工操作的效率来的靠谱。 |
14
defunct9 2022-01-31 11:50:28 +08:00
python 。我们公司有个上线系统,非常难用。后来我们就自己开发了个 python 程序,首先去 excel 拿到要处理的数据,然后根据这个数据去上线系统查询到哦上线机器,然后再自己一个一个去发 url 请求上线。基本满足你这个需求了。
|
15
ila 2022-01-31 11:58:41 +08:00 via Android 2
1. 读 excel
2. requests 网页 3. 解析网页 4. 写 excel |
16
musi 2022-01-31 12:13:37 +08:00
简单是挺简单的,不过要控制好查询的速度,不然把网站打挂了就不大好了
|
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 ,遇到问题可以解答。 |
18
mouyong 2022-01-31 12:20:38 +08:00
40 条信息的核对,别人要花 4~6 小时的工作。排除研发耗时 5 天。后续每次只需要等 9s ,所有人需要等待 6 分钟左右。且可以根据自己的心意安排玩耍了。
|
19
mouyong 2022-01-31 12:22:13 +08:00
https://mp.weixin.qq.com/s/ygci9CVgT5p8KERPQepYuw 教你轻松截获 Selenium 中的 Ajax 数据
https://mp.weixin.qq.com/s?__biz=MzI3ODMxNzkxMg==&mid=2247483747&idx=1&sn=def44225890d5113c25306445a87063d&chksm=eb599f54dc2e16422571e95b41d767390cbb22d2935c0cd841d9f114b1bf27d50fe8f3e1bbc4&scene=21#wechat_redirect 如何用 Hook 实时处理和保存 Ajax 数据 |
20
awkward 2022-01-31 13:05:04 +08:00
微软的 power automate
|
21
julayanhe OP 谢谢各位大佬的回答,今天的临时任务我就手动完成了。
不过后面还会有很多类似的工作。我会好好研究下各位的意见。 祝大家新年快乐。 |
22
imn1 2022-01-31 14:20:23 +08:00
这个事情我建议结合实际工作要慎重考虑
全自动是难的,半自动容易一点(自动请求、自动填写,但中间是人工判断) 如果正常返回,一般都很顺畅,难点全在非正常返回的情况,例如找不到、网络错误等等 最后,重点重点重点 —— 如果出现漏填、填错的情况,你的家人是否要担责? 如果要,我觉得还是半自动吧,一定要有人工判断的步骤,不然你的程序没考虑完全所有“非正常返回”的情况,出现错漏,引致家人担责,那才是大问题 如果懂 pyqt ,我建议写个 webview ,把前面请求和最后分析页面用程序自动,减少打字、复制粘贴的操作,但中间查询的步骤,显示在 webview ,由人工判断“查询成功”还是“失败” |
23
jsq2627 2022-01-31 14:40:11 +08:00
这就是 RPA 领域的典型场景了
推荐使用 UiPath 或者 Power Automate |
24
inframe 2022-01-31 15:29:10 +08:00
pandas 读取
每一行数据, requests 发送请求解析结果 pandas 再写回去; |
25
snw 2022-01-31 15:49:42 +08:00 via Android
如果网页端没有反爬措施的话,用 Excel 自带的 Power Query 就可以(数据 -> 获取与转换),完全不需要 python 等外部应用。
|
26
lijiext 2022-01-31 16:44:19 +08:00
对用 RPA 就可以解决,国产很多解决方案
|
27
xy90321 2022-01-31 17:24:26 +08:00 via iPhone
完全自动化先不说,至少通过公式拼个 url 参数、又或者拼成 js 代码直接 dom 赋值输入是可以一下子实现的,这也能明显提升效率、降低错误率了
|
28
li02 2022-01-31 19:26:13 +08:00 via Android
在线编辑的文档不是很多,腾讯文档,钉钉文档,飞书文档不够用吗
|
29
ji39 2022-01-31 19:58:13 +08:00
别让人知道你做的那么快,就怕后台能查询到你的录入速度,搞半自动最好,保证不错且速度能自己掌握
|
30
miyuki 2022-01-31 22:58:20 +08:00
简单一些的可以考虑 VBA
之前遇到了一些模板填写(需要保留格式),表自带保护,一些库而且也不保留格式,最后用 VBA 搞定了 |
31
wxb2dyj 2022-01-31 23:15:50 +08:00 via iPhone
推三楼。我自己就是这么做的。
|
32
meathill 2022-01-31 23:28:46 +08:00
Excel 存成 csv ,然后配合 js 很容易。不过需要的知识面并不少,不知道你现学来不来得及。
|
33
dingyaguang117 2022-02-01 01:09:40 +08:00
excel 可以直接写脚本的,VBS
|
34
ch2 2022-02-01 12:04:30 +08:00 via iPhone
Python requests+openpyxl
|
35
darkengine 2022-02-01 22:02:52 +08:00
如果这个网页有验证码,就比较难受了
|
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 看楼主描述,实现这需求不难 |
37
haoxuexiaoyao 2022-02-02 13:33:32 +08:00
UI.Vision RPA 浏览器自动化工具 可以读 Excel,进行自动化查询,然后自动保存到表格
|
38
lyz1990 2022-02-03 09:43:12 +08:00 via Android
https://www.litrpa.com/
试试类似这种 RPA 的东西 |
39
Alias4ck 2022-02-09 11:11:11 +08:00
最简单的应该是用 vba 写个 宏
|
40
stonesirsir 2022-03-03 20:50:12 +08:00
@darkengine 就这个就很难受了
|