V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sg8011
V2EX  ›  程序员

我这种需求应该去学什么

  •  
  •   sg8011 · 79 天前 · 5251 次点击
    这是一个创建于 79 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近碰到一个需求,业务部门想要统计业务系统里的某个业务参数,但是业务系统里面并没有提供这项参数的统计功能,也没办法导出 excel 表来自己统计,只能在点开每个详情一一里面查看。但是这个业务每个月至少有 4000 多件,一件一件点进去的话算,非常费时费力,应该学点什么技术,可以实现提取并汇总每个项目详细信息里的这项数据,然后进行统计呢?
    46 条回复    2024-09-25 22:58:44 +08:00
    tool2dx
        1
    tool2dx  
       79 天前
    可以用 sql 统计,业务数据一般都是存在数据库里的。
    zsh2517
        2
    zsh2517  
       79 天前 via Android
    @tool2dx 普通人应该没权限接触数据库。我建议学一下 js 和油猴脚本(或者一些爬虫相关的知识),从前端把数据扒拉下来
    sg8011
        3
    sg8011  
    OP
       79 天前
    @tool2dx 这个业务系统是上头开发的,不可能给你数据库权限
    sg8011
        4
    sg8011  
    OP
       79 天前
    目前只是模糊的感觉应该是爬虫方向或 rpa 方向,但我们这个是内部网络,不连互联网的,rpa 我看很多都得联网才能用
    Frankcox
        5
    Frankcox  
       79 天前
    python selenium 爬虫
    greycell
        6
    greycell  
       79 天前   ❤️ 1
    需要学会怎么给上面提需求。
    sagaxu
        7
    sagaxu  
       79 天前
    内网一般不会反爬,抓一下详情页 API ,这点儿数据量也不用调度

    简单学点 python, 依葫芦画瓢调 requests 请求数据,然后用 BeautifulSoup 解析,最后输出 csv
    sillydaddy
        8
    sillydaddy  
       79 天前 via Android
    方案 1 ,给老板提预算,招 5 个手下,手工统计。你负责做管理人。

    方案 2 ,给老板提预算,5000 块外包解决。你整理几个模板页面,花 2000 块找个外包开发抓取功能是,自己挣 3000 块的辛苦费。

    方案 3 ,给老板提预算,自己需要 1 个月的时间来学习爬虫。这段时间好好学点技术。
    sillydaddy
        9
    sillydaddy  
       79 天前 via Android
    让老板肉疼,他就会去找上面做业务的,用一个 SQL 语句解决这个问题。
    fanersai
        10
    fanersai  
       79 天前   ❤️ 1
    感觉是你们信息科的这个项目没有给尾款/维保费用克扣,甚至验收的时候数据库并没有给信息科的工程师开放,兼职愚蠢!
    Ranhao
        11
    Ranhao  
       79 天前
    如果你不是开发相关,#9 说得好
    kw8023cn
        12
    kw8023cn  
       79 天前
    爬虫麻烦了,让 chatgpt 给你写一个脚本,脚本要求如下:
    通过业务列表接口获取所有所有业务 id ,至于接口是啥,自己 f12 在列表页扒一下,
    然后遍历这个接口返回的数据集合,取出里边的 id 字段,接着把这个 id 拼装到业务详情接口,至于接口是啥,自己 f12 在详情页面拔,一般详情页面的地址栏就能看到,这样能拿到业务详情数据,把接口返回的数据的 key 作为表头,value 作为一行内容,输出到一个 excle 中。
    这样你就能得到一个汇总了所有详情数据的表格。
    kw8023cn
        13
    kw8023cn  
       79 天前
    当然接口是需要登录的,你需要 f12 把你们系统的登录凭证复制一下,使用 python 添加到请求头里,告诉 chatgpt 就行了
    zhangkai1024
        14
    zhangkai1024  
       79 天前   ❤️ 1
    使用 postman 一次性请求所有数据,pageSize=4000
    将 response 中 data 的不分贴给 chatGPT 生成表格
    sg8011
        15
    sg8011  
    OP
       79 天前
    统一回复楼上各位,这系统不是我们开发的,是上面的总公司找软件商开发的,我们只是用而已。什么 SQL 数据库提需求的啥的就不要想了,提预算也不可能给你。就是得自己解决
    RandomJoke
        16
    RandomJoke  
       79 天前
    爬虫方向没问题,而且也没多复杂,上面说的那些用请求的,前提都是前后端分离的
    min
        17
    min  
       79 天前
    rpa 加 excel (或者统计分析软件)
    hackhu2019
        18
    hackhu2019  
       79 天前
    可以看看 rpa 工具,比如「影刀」,图形化配置,然后抓数据下来操作
    leejinhong
        19
    leejinhong  
       79 天前   ❤️ 1
    合理利用 chatgpt ,把你的需求结合你们业务系统的网页结构直接描述给 chatgpt 生成脚本去执行。至于什么脚本语言都是可以的,看哪种比较容易看得懂,比如 js 、php 什么的。
    sg8011
        20
    sg8011  
    OP
       79 天前
    如果要通过爬虫解决,现在什么爬虫框架比较好,python 和 go 语言都会一点
    还是要学习 selenium puppeteer 之类的工具?
    unco020511
        21
    unco020511  
       79 天前
    花 1000 块,在 v 站找个小伙伴帮你把所有搞好
    RandomJoke
        22
    RandomJoke  
       79 天前
    @sg8011 哪那么复杂,python +一点 JS HTML 知识就够了,你又不是要写什么爬虫大项目
    Configuration
        23
    Configuration  
       79 天前
    搞笑,你们项目上线后就一成不变了吗? 不需要根据实际业务变化不断迭代吗?还是说跟软件开发商已经闹掰了?
    Habyss
        24
    Habyss  
       79 天前
    你会什么就用什么, 都不会的话选一个感兴趣的, 而且你这点儿东西用不到框架

    总体思路就是, F12 查看请求, 然后使用代码循环复现请求, 得到响应数据, 拿到响应里自己需要的数据, 处理

    至于你要的信息是不是在列表数据中就已经返回了, 是不是真的需要调用详情接口才能获取, 需要自己去看了
    tomatocici2333
        25
    tomatocici2333  
       79 天前
    自学 python 爬虫
    gogogo1203
        26
    gogogo1203  
       79 天前
    丢给 AI.
    dejavuwind
        27
    dejavuwind  
       79 天前
    @unco020511 打个 8 折 交个朋友
    yb2313
        28
    yb2313  
       79 天前
    上爬虫, 给系统上上压力
    Sawyerhou
        29
    Sawyerhou  
       79 天前 via Android
    系统能用 chrome 打开吗?能的话用 automa 插件试试。
    saranz
        30
    saranz  
       79 天前
    还是直接和领导申请数据库吧,写虫子,对业务系统太浪费了。
    NoOneNoBody
        31
    NoOneNoBody  
       79 天前
    给你个最简单的方案:
    1. 先让 chatgpt 写个 python flask ,接收油猴提交过来的数据,就几行 python 而已
    如果后续计算简单,可以让 flask import 计算模块直接计算,储存结果,然后返回给油猴
    如果计算复杂耗时,几分钟完成不了,就直接存接收的数据,离线另外计算
    2.油猴,让 chatgpt 写,你需要做的就是用浏览器找到数据所在元素,开发者工具 copy css selector 并告诉 gpt 提取这个
    如果需要自动翻页,也是知道多个页面的地址,让 gpt 写自动跳到下一页
    脚本获取后提交给前面说的 flask ,看情况是否需要获取返回,离线计算的话,alert 知道存了就行了

    把整个需求组织一下,跟 chatgpt 说清楚,自己改改基本就可以了,全部本地操作,不用学太多东西
    NoOneNoBody
        32
    NoOneNoBody  
       79 天前
    ps: flask 用 debug 模式,这样改动 python ,ctrl-s ,flask 就能自适应刷新,反正个人需求,也不会出现大规模请求,就起一个 flask 够用了
    liuyx7894
        33
    liuyx7894  
       79 天前
    呃...大概率爬虫框架都不用,你把列表页接口和详情页接口找到,然后把你的 token 搞下来用任意语言循环请求一下就搞定了....
    内部系统也没啥反扒...
    Nosub
        34
    Nosub  
       79 天前 via iPhone
    提供两个思路,做过类似的功能,
    第一个:纯 api 接口层面,看看是否可以直接调用接口,如果不能,看看 api 是否可以重放,如果可以重放,就表示可以提取 cookie 或是 token 写脚本。

    第二个:如果数据依然来自 api 接口,如果接口很难破解或是以你的能力破解不了,那就不破解,抓包就可以了,写一个模拟点击的功能,然后写一个抓包插件,基于 fiddler 写个抓包插件或是脚本并不难,可以学习下 c#。

    第三个:如果数据是服务端渲染,也就是数据在 HTML 里面,那更加简单,写个爬虫,解析 HTML 就可以。


    第四,如果以上方法都不行,用按键精灵写一个脚本,模拟人为点击,复制数据,粘贴数据。
    stillsilly
        35
    stillsilly  
       78 天前
    3 个 js 函数就行了
    列表数据 = 发请求拿列表页数据()
    列表数据.循环每条(一条数据 => {
    详情数据 = 发请求拿详情数据(一条数据.id)
    // 拿到详情数据了,存到数组里,列表循环完之后导出成 excel 文件。也是一个简单的小函数就可以了。
    // 不会写的话可以问 chatGPT ,就这么问它:帮我用 js 写一个函数,传入数组,把数组转成 excel 下载下来。
    })
    stillsilly
        36
    stillsilly  
       78 天前
    缩进没了 好难看
    adoal
        37
    adoal  
       78 天前
    设计系统的架构受制于产生这些设计的组织的沟通结构。

    ——马文·康威,1967
    imicksoft
        38
    imicksoft  
       78 天前
    是浏览器打开的 web 管理系统?
    那用 aardio ,web.view2 组件,循环浏览提取网页上的信息,保存一下,再整理
    wocao666
        39
    wocao666  
       78 天前
    两种方法:打开抓包软件抓取请求,根据请求写自动化请求脚本获取并汇总数据;用 selenium 、puppeteer 、playwright 这种无头浏览器抓取解析网页并实时汇总
    Ackvincent
        40
    Ackvincent  
       78 天前
    selenium 一把嗦
    EndlessMemory
        41
    EndlessMemory  
       78 天前
    Python 自动化
    laminux29
        42
    laminux29  
       78 天前
    正经的业务系统,不要去用爬虫,因为会产生很多额外的问题。比如如果某天系统做了反爬,或者做安保,你怎么办?

    正经的业务系统,就要走正规流程,开工作联系函,要求上级提供正规的接口。
    karnaugh
        43
    karnaugh  
       78 天前
    可以 rpa 你可以当做是低代码工作流平台,那么换个名字搜的话,你就能搜到类似 dify 、n8n 这些开源项目了
    tairan2006
        44
    tairan2006  
       78 天前
    这个不好说,估计要抓包看一下你这系统数据是怎么传输的
    sg8011
        45
    sg8011  
    OP
       55 天前
    @stillsilly 请问这个用爬虫来实现还是用 selenium 来实现比较合适?
    stillsilly
        46
    stillsilly  
       52 天前
    @sg8011
    直接打开浏览器的开发者工具 就能写 js 代码了 不需要安装其他的什么软件

    如果是给业务部门用,不想让他们接触代码,想傻瓜式一点,点个按钮就行,可以写成油猴脚本或者 Chrome 扩展程序
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3022 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:50 · PVG 21:50 · LAX 05:50 · JFK 08:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.