LittleR

RPA与爬虫、按键精灵、脚本到底有什么区别

RPA跟爬虫有什么区别?

RPA跟按键精灵有什么区别?

RPA跟脚本程序有什么区别?

RPA跟传统开发有什么区别?

RPA跟自动化测试软件有什么区别?

流程自动化业内人士应该多数有被问及这些问题,不过好像还没有一个比较系统的回答。

 

对许多普通用户来说,很难完全搞清楚这么多不同名词之间的区别。我们将最主流RPA产品的标准化能力与实现对应的这些能力的非RPA技术实现方案做了一个简单对比:

RPA魅力--“多面手”

通过以上对比可以发现,主流成熟RPA产品的能力具备了完整的企业应用自动化方案,可以将几乎所有企业办公会碰到的应用场景在技术上全部完美实现。RPA产品的魅力就在于单个产品(或平台),具备了如此丰富且可靠的能力,如果产品在易用性和开发效率上又做了许多打磨的话,就完全可以实现早先RPA理念中非常重要的一条“快速交付”能力。

对比非RPA技术实现路径:

许多时候都是拿RPA产品的一个能力点,去对比某一项技术实现路径。就比如:

网页数据-读

单纯的去网页上抓(读)数据,对象网站又几乎没有反爬措施的情况下,网络爬虫,似乎是更高效的方案。

网络爬虫最基础的实现原理:

即笼共分两步:

第一步:拿指定URL页面所有内容

第二步:分析这些内容

以上最基础流程基本没有实用价值,需要加上批量循环的URL调度器,毫无节制的去对象网站收刮站点的内容:

即笼共分三步:

第一步:轮询URL调度器

第二步:拿指定URL页面所有内容

第三步:分析这些内容

为了高效,很多爬虫是“臭不要脸”又毫无节制的,他们会给对象网站沉重的压力。这是为什么很多网站不喜欢被爬的原因之一。为什么说爬虫毫无节制呢,因为爬虫会把有用的,没用的,反正这个URL下的所有东西都拿过来,然后再在本地做数据分析留下它要的数据,抛弃99.999%的无用信息。

那RPA是怎么做的?

RPA是跟人一样的处理逻辑,打开一个网页,找有没有RPA想找的东西,有就拿下来,没有就接着找,或者直接说“找不到”。

其二,RPA对于网页的技术实现是需要把网页打开进行UI呈现的,RPA是没有“headless”模式的(headless模式是selenium 的参数,意思是不显示浏览器直接操作) 。为什么技术这么设计 ?这样设计的目的就是最大限度的模拟人的行为进行作业。人需要网站完全加载了,才知道下一步应该点哪里,而不是提前分析网站的HTML代码解析出那个按钮对应的HREF是哪里。

第三,RPA对目标网站的压力不会比真人大多少。不会像爬虫,伪装N个Header头,多线程发起N个Request请求,简单的概括就是,RPA不暴力。它可能比人快,但是是在游戏规则内合理合法的快。

所以常规的网站反爬对于RPA基本是无效的,除了在login阶段的验证码同样会带来一点麻烦外。RPA干的那点事,在网站后台看起来是跟普通人在作业几乎一摸一样的,如果网站把RPA的行为都列入反爬限制,那么这个网站的误伤率一定高的可怕,会把很多普通人的行为也给屏蔽了。

有些人可能会说,Python+Selenium 也能实现类似人的访问模式。好吧,Selenium确实有网页自动化能力,但是网页元素识别提取,整合后的系统可靠性可能还是不如主流的RPA产品靠谱。所以为什么我们一直说,RPA工具的元素拾取器是RPA工具的灵魂功能。

某国产RPA(容智)的网页自动化实现就是直接拿Selenium稍微改了改。

RPA产品-“像个人”

由于RPA已经逐渐形成了清晰的产品形态,产品(平台)打造的各种机器人管理、行为审计监控、机器人资源池、灵活扩展、任务触发排期机制、第三方账号密码管理、统一的数据规范等等让RPA更像一个真正的数字员工同事,而不只是一款软件。

至于那些用各种技术拼凑起来的脚本方案,开发效率低,管理维护难,可靠性差是基本可以确定的。

开篇的很多提问我们可能没法一个个展开去阐述,仅以RPA与网络爬虫的区别进行举例分析,希望可以把这个问题讲明白。

 

要发表评论,您必须先登录