首頁/ 汽車/ 正文

RPA大神之路|純用來也UiBot實現滑塊過驗證

需要5。1。1以上版本支援

以京東為例,隨便輸入賬號密碼登入就會出現驗證碼

網址:https://www。jd。com/

RPA大神之路|純用來也UiBot實現滑塊過驗證

重新整理圖片發現,中間黑色區域是變化最小,可以作為特徵用

初始滑塊與下面箭頭是對應的

RPA大神之路|純用來也UiBot實現滑塊過驗證

所以獲取黑色區域位置和箭頭位置模擬滑鼠拖動完成驗證

按著思路實現就好了

1。滑鼠移動到黑色影象像上,【截圖把黑色塊全部截全就好】

2。獲取滑鼠位置1

3。滑鼠移動到箭頭影象像上

4。獲取滑鼠位置2

5。拖動滑鼠從位置1到位置2

6。完成

RPA大神之路|純用來也UiBot實現滑塊過驗證

截圖位置不同實際位置有偏差,設定偏移量修正

實際執行位置正確,也無法過驗證,這就需要模擬人執行軌跡了,有加減速,拋物線移動···

僅提供思路,具體更多詳細借鑑帖子:

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!擁有大量智慧自動化在各領域的應用案例!歡迎加入來也開發者社群交流!

關注來也科技,智慧自動化平臺等你來探索!

相關文章

頂部