likes
comments
collection
share

RPA 前端解决方案

作者站长头像
站长
· 阅读数 78

前言

刚入职公司3个月的时间,领导让我负责前端 RPA 的一些需求,目前其他的同事也都是忙于业务需求,对这方面也没有项目经验(我也是没接触过),下面我们一起先了解下 RPA 的相关概念。

RPA 是什么

RPA (Robotic Process Automation,机器人流程自动化)是一类流程自动化软件工具,通过程序模拟人为操作进行数据采集以及流程自动化,解决繁琐低效的重复劳动,提高效率。

那么映射到我们在做的需求就是 前端爬虫,通过消息队列的形式,每天不定时的在第三方网站(通过跨境卫士登录,里面拥有所有的店铺)执行相应步骤和流程的操作,从消息队列里取出对应的店铺和起始时间来模拟人的操作,下载到相应文件调用接口形式给到后端,来进行每个店铺销量数据统计和分析。

功能实现

按照上面功能分为两个模块

node模块

node 模块负责管理、调度爬虫任务,并负责通信任务,主要功能点如下:

  • 与服务器通信,使用消息队列与服务器通信,接收任务。
  • 与爬虫通信,根据不同实现,爬虫可能需要交换信息。
  • 任务调度,管理任务的启动、取消、结束,是否能异步进行,以及保存任务结果。
  • 错误处理,爬虫出错时的重试机制,以及对应的错误处理。
  • 日志,收集执行时的各种日志,方便分析及 debug。
  • CICD,因为跨境卫士只能运行在 windows 上边,所以服务器也只能选择 windows server,需要有对应的部署方案。
RPA 前端解决方案

流程图如上,出于解耦的考虑,node 管理模块只负责通信和任务调度管理,不负责具体的任务功能。 为了便于扩展,node 管理模块支持多种。

爬虫任务

这块要做的主要是数据采集和自动化任务两个方向,都需要和浏览器打交道,有几种方案:

无头浏览器

使用 puppeteer 或 selenium 编写脚本完成任务,优势为性能高、灵活性好、开发速度快,可以并行进行任务;缺点为不支持跨境卫士,可能会触发网站的反爬机制。

模拟人工手动操作

使用模拟鼠标键盘、图像搜索定位等功能模仿真实用户操作,优势为适用范围广,支持跨境卫士及其他软件,被风控机率小;缺点为速度慢,运行时会占据系统,只能同步进行任务。

可参考:www.youtube.com/watch?v=MpI…

浏览器插件

通过插件的方式进行网页进行定位、模拟操作。优势为支持跨境卫士,缺点为开发、安装繁琐,环境不稳定,只能同步进行任务。

最终选型

本次 eBay traffic 数据采集任务依赖于跨境卫士,所以技术上会选择模拟人工手动操作的方式。附上开发文档链接

经过调研,单次自动化任务需要花费 7 - 10 分钟时间,主要花销在于等待 ebay 后台生成下载任务需要较长时间,且无法规避。考虑 ebay 店铺较多(133 个),整体执行时间过长,所以准备将单个爬虫任务拆分成两部分,第一部分先触发所有店铺的生成下载任务,第二部分进行文件下载,node 模块需要进行对应的任务调度,保证爬虫任务的执行顺序。

RPA 前端解决方案

最后

上面也只是我们调研了几种的实现方案,目前我们也是踩坑中,后续也会把踩坑记录也记录下来分享给大家。大家有什么好的实现方式也可以在评论区留言!

转载自:https://juejin.cn/post/7162926493184557093
评论
请登录