八爪鱼RPA教程_noView
八爪鱼RPA教程
指令

滑块验证码自动处理:RPA结合Python的OCR识别与自动化操作

你在登录京东或者其他网站时,是否经常被滑块验证码困扰,无法进行自动化操作?别担心,今天我们就来看看如何通过八爪鱼RPA结合Python的OCR技术,自动化处理滑块验证码,解放你的双手。

一、案例简介

在日常的网络操作中,滑块验证码是为了防止恶意请求而设置的一道门槛,但对于自动化流程却是个难题。本案例讲解了两个滑块验证码的实际应用场景:一个是京东商家登录时的验证码处理,另一个是腾讯网站的滑块验证。我们将通过Python调用OCR库来识别滑块验证码,并进行自动滑动。

rpa_tutorial_octopus_case_OCR_discriminate_1

二、Python环境安装

要完成这一流程,首先需要在系统中安装Python环境,版本推荐使用3.8.10。具体步骤如下:

  1. 下载Python 3.8.10:前往Python官网下载安装包。
  2. 运行安装程序:双击下载的 .exe 文件,运行安装程序。
  3. 勾选 “Add Python 3.8 to PATH”:这样可以方便在命令行中直接使用Python命令。
  4. 完成安装:自定义安装路径或者直接点击“Install Now”安装。

安装完成后,打开命令提示符并输入 python,如果显示Python版本号,说明安装成功。

三、Python库安装

接下来,我们需要安装两个Python库——ddddocrpyautogui。在命令提示符中输入以下命令并回车运行:

    
pip install ddddocr  -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple

四、流程详细说明

1. 识别滑块验证码

为了实现滑动验证码的自动化,首先我们需要识别滑块缺口的位置。ddddocr 组件能够识别验证码缺口的位置,我们可以通过以下代码来识别滑块和背景图片:

    
import ddddocr

det = ddddocr.DdddOcr(det=False, ocr=False, show_ad=False)
target_img = ddddocr.base64_to_image("滑块图片链接".replace("data:image/png;base64,", ""))
background_img = ddddocr.base64_to_image("背景图片链接".replace("data:image/png;base64,", ""))

target_img.save("target.png")
background_img.save("background.png")

with open('target.png', 'rb') as f:
    target_content = f.read()
with open('background.png', 'rb') as f:
    background_content = f.read()

res = det.slide_match(target_content, background_content, simple_target=True)
print(res)

rpa_tutorial_octopus_case_OCR_discriminate_2

rpa_tutorial_octopus_case_OCR_discriminate_3

rpa_tutorial_octopus_case_OCR_discriminate_4

rpa_tutorial_octopus_case_OCR_discriminate_5

rpa_tutorial_octopus_case_OCR_discriminate_6

上述代码会返回缺口的位置坐标,例如:

    
{'target_y': 0, 'target': [481, 85, 617, 221]}

此时我们就知道滑块的缺口在哪里了。

2. 滑动验证码

有了缺口位置后,我们还需要知道滑块的起始位置。通过获取网页元素的指令,可以得到滑块的初始X和Y坐标。然后根据缺口相对背景图片的位置来计算滑动的距离。

rpa_tutorial_octopus_case_OCR_discriminate_7

    
import pyautogui

# 设置起始位置
start_x = 验证码起始X
start_y = 验证码起始Y

# 计算终点位置
end_x = start_x + 滑动距离
end_y = start_y

# 移动鼠标到起始位置
pyautogui.moveTo(start_x, start_y, duration=0.5)

# 按下鼠标左键
pyautogui.mouseDown()

# 仿真拖动滑块
pyautogui.moveTo(end_x + 20, end_y + 20, duration=0.5)
pyautogui.moveTo(end_x, end_y, duration=0.5)

# 松开鼠标左键
pyautogui.mouseUp()

这种方式可以通过模拟鼠标拖动来实现滑块验证码的破解。

rpa_tutorial_octopus_case_OCR_discriminate_8

五、应用获取

如果你不想手动配置这些步骤,八爪鱼RPA已经为你准备好了现成的解决方案。你可以下载八爪鱼RPA客户端,获取滑块验证码自动识别的应用,快速实现自动化操作。
下载八爪鱼RPA客户端

安装好客户端后,点击或复制下方链接在浏览器中打开,即可免费获取滑块验证码自动识别的应用。
获取滑块验证码自动识别应用

在我看来,使用RPA结合Python的OCR识别技术是一个极为高效的自动化解决方案。通过这个应用,你再也不用为滑块验证码烦恼,整个操作过程简洁且方便,实用性极高。

阅读全文
AI工具教程
免费领取AI学习资料 进AI副业交流群
礼物
AI工具教程
免费领取AI学习资料 进AI副业交流群