rpa代替人工获取网页数据(纯用来也UiBot实现滑块过验证)

需要5.1.1以上版本支持

以京东为例,随便输入账号密码登录就会出现验证码

网址:https://www.jd.com/

rpa代替人工获取网页数据(纯用来也UiBot实现滑块过验证)(1)

刷新图片发现,中间黑色区域是变化最小,可以作为特征用

初始滑块与下面箭头是对应的

rpa代替人工获取网页数据(纯用来也UiBot实现滑块过验证)(2)

所以获取黑色区域位置和箭头位置模拟鼠标拖动完成验证

按着思路实现就好了

1.鼠标移动到黑色图像像上,【截图把黑色块全部截全就好】

2.获取鼠标位置1

3.鼠标移动到箭头图像像上

4.获取鼠标位置2

5.拖动鼠标从位置1到位置2

6.完成

rpa代替人工获取网页数据(纯用来也UiBot实现滑块过验证)(3)

截图位置不同实际位置有偏差,设置偏移量修正

实际运行位置正确,也无法过验证,这就需要模拟人运行轨迹了,有加减速,抛物线移动···

仅提供思路,具体更多详细借鉴帖子:

RPA大神之路|UiBot过滑动验证码检测实例 - 知乎

如有更多建议或优化,欢迎跟帖交流

源码:

dim ob = ""

dim oc = ""

dim steps = ""

dim distance = ""

#icon("@res:966i0rk9-tpe5-npev-67d2-bpfu3r5dn3e4.png")

Image.Hover({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"* - Google Chrome","app":"chrome"}]},{"height":0,"width":0,"x":0,"y":0},@res"966i0rk9-tpe5-npev-67d2-bpfu3r5dn3e4.png",0.7,10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate","sMatchType":"GrayMatch","iSerialNo":1})

ob=Mouse.GetPos()

TracePrint(ob)

#icon("@res:o5suc5k4-n3q1-1j56-thsm-nhlfmp1a14f5.png")

Image.Hover({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"京东-欢迎登录 - Google Chrome","app":"chrome"}]},{"height":0,"width":0,"x":0,"y":0},@res"o5suc5k4-n3q1-1j56-thsm-nhlfmp1a14f5.png",0.9,10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate","sMatchType":"GrayMatch","iSerialNo":1})

oc=Mouse.GetPos()

TracePrint(oc)

Mouse.Click("left", "down", [],{"iDelayAfter":300,"iDelayBefore":200})

distance = ob["x"] 4-oc["x"]

TracePrint(distance)

steps = getHuakuaiMovePath(distance)

huaKuaiMoveStep(steps)

Mouse.Click("left", "up", [],{"iDelayAfter":300,"iDelayBefore":200})

// 变速运动路径

Function getHuakuaiMovePath(distance)

Dim a,stack,v,back_stacks

distance = distance 20

// 初速度

Dim v0 = 0

// 加减速度列表

Dim a_list = [3, 4, 5]

// 时间

Dim t = 0.2

// 初始位置

Dim s = 0

// 向前滑动轨迹

Dim forward_stacks = []

Dim md = distance * 3 / 5

Do While s < distance:

If s < md

a = a_list[cint(Rnd() * 2)]

Else

a = a_list[cint(Rnd() * 2)] * -1

End If

v = v0

stack = v * t 0.5 * a * (t ^ 2)

// 每次拿到的位移

stack = Math.Round(stack,0)

s = s stack

v0 = v a * t

push(forward_stacks,stack)

Loop

back_stacks = [-1, -1, -2, -3, -2, -3, -2, -2, -3, -1]

return {'forward_stacks': forward_stacks, 'back_stacks': back_stacks}

End Function

/* 鼠标模拟滑块移动

* steps:匀加速运动轨迹。getHuakuaiMovePath(distance)的返回结果。

* getHuakuaiMovePath(distance)

* huaKuaiMoveStep(steps)

*/

Function huaKuaiMoveStep(steps)

Dim front=steps["forward_stacks"]

Dim back=steps["back_stacks"]

For Each value In front

Mouse.Move(value, 0, true)

Delay(12)

Next

For Each value In back

Mouse.Move(value, 0, true)

Delay(34)

Next

Delay(200)

End Function

如有更多建议或优化,欢迎跟帖交流

更过内容参考:

RPA大神之路|破解滑块(极验)验证码思路 - 知乎

成就RPA大神之路,来也自然靠得住!

关于来也科技

来也科技RPA AI现已免费使用社区版,要想体验智能自动化平台产品,您可点击链接试用!

更多关于LAIYE 智能自动化等问题,欢迎登陆

来也科技(北京)有限公司官网

了解!更有免费专属一对一教练为您提供解答疑惑!也可私信来也科技咨询了解!

来也科技作为中国乃至全球的智能自动化领军品牌,为客户提供变革性的智能自动化解决方案,提升组织生产力和办公效率,释放员工潜力,助力政企实现智能时代的人机协同。来也科技的产品是一套智能自动化平台,包含机器人流程自动化(RPA)、智能文档处理(IDP)、对话式AI(Conversational AI)等。基于这一平台,能够根据客户需要,构造各种不同类型的软件机器人,实现业务流程的自动化,全面提升业务效率。目前,来也科技帮助电力,银行,保险、通信、零售等多行业的企业客户,以及数字政府、公共医疗、高校职教在内的公共事业领域,实现了各种业务场景的深度突破与打通,构建起了端到端的自动化解决方案,已服务超过 200 家 500 强企业,200 余个省市政府及上千家中小企业,2021年《财富》世界500强榜单前十名企业中,7 家在使用来也科技的智能自动化产品。

同时来也科技拥有着最完善的RPA开发者生态社区,社区用户目前近70W!拥有大量智能自动化在各领域的应用案例!欢迎加入来也开发者社区交流!关注来也科技,智能自动化平台等你来探索!,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页