CSDN-Ada助手 2024-03-25 11:07 采纳率: 1.6%
浏览 36

请问UiPath做京东登录的滑块验证有没有什么好的方案

该问题来自社区帖: https://bbs.csdn.net/topics/618295904.为符合问答规范, 该问题经过ChatGPT优化
<html><head><title>UiPath做京东登录滑块验证</title></head><body>

请问UiPath做京东登录的滑块验证有没有什么好的方案?

</body></html>
  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-03-25 11:08
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述: 请问UiPath做京东登录的滑块验证有没有什么好的方案? 回答:
    1. 滑块验证的原理 滑块验证是防止机器人行为的一种常见验证方式。滑块验证的核心原理是利用人类的手动操作能力,通过识别滑块拼图并连接图片的方式来验证身份,防止程序自动化操作。
    2. UiPath实现滑块验证的方案 在UiPath中实现滑块验证的方案主要有以下几种: (1) OCR识别 通过OCR技术识别滑块验证码的位置和大小,然后模拟鼠标滑动来完成验证。实现的难度较大,但是通过不断的训练和调试可以提高成功率。 示例代码:
    //使用UiPath的OCR活动获取验证码坐标和大小
    ocrText = OCR.GetText(imagePath);
    //匹配验证码并获取验证码位置
    Rectangle rect = image.FindText(ocrText);
    //获取滑块的位置和大小
    int sliderWidth = rect.Width / 2; //滑块宽度为验证码的一半
    int sliderHeight = rect.Height;
    int sliderLeft = rect.X + sliderWidth / 2; //滑块左边界为验证码左边界+滑块宽度的一半
    int sliderTop = rect.Y;
    //通过MouseMove和MouseDown等活动完成鼠标滑动
    MoveMouse(sliderLeft, sliderTop, sliderWidth, sliderHeight);
    MouseDown();
    MoveMouse(sliderLeft + 25, sliderTop, sliderWidth, sliderHeight);
    MouseUp();
    

    (2) 图像识别 通过模板匹配或者特征值匹配等图像识别方法,识别出滑块和验证码的位置和大小,然后模拟鼠标滑动来完成验证。实现的复杂度较高,但是成功率相对比较高。 示例代码:

    //使用UiPath的ImageExists活动查找验证码和滑块的位置
    selector.Verbose = true;
    var imageExists = uiElement.ImageExists(selector);
    if (imageExists == null)
    {
        throw new Exception("Unable to find the image file");
    }
    //获取图片存在的位置和大小
    var rect = imageExists.BoundingRectangle;
    //获取滑块的位置和大小
    int sliderWidth = rect.Width / 2; //滑块宽度为验证码的一半
    int sliderHeight = rect.Height;
    int sliderLeft = rect.X + sliderWidth / 2; //滑块左边界为验证码左边界+滑块宽度的一半
    int sliderTop = rect.Y;
    //通过MouseMove和MouseDown等活动完成鼠标滑动
    MoveMouse(sliderLeft, sliderTop, sliderWidth, sliderHeight);
    MouseDown();
    MoveMouse(sliderLeft + 25, sliderTop, sliderWidth, sliderHeight);
    MouseUp();
    

    (3) API接口 通过调用第三方平台的API接口,获取验证码和滑块的位置和大小,然后模拟鼠标滑动来完成验证。实现的难度较低,但是需要付费或者限制调用次数。 示例代码:

    var apiKey = "your_api_key";
    var apiSecret = "your_api_secret";
    var apiUrl = "http://api.xunma.net/";
    //调用第三方平台的API获取验证码和滑块的位置和大小
    var response = Http.Post(apiUrl + "api.xunma.net/getpoint", new
    {
        username = "your_username",
        password = "your_password",
        typeid = "3040",
        timeout = "60",
        softid = "your_softid",
        softkey = "your_softkey",
        image_data = "your_image_data"
    });
    var result = response.Content.ReadAsStringAsync().Result;
    //解析API返回的数据获取滑块的位置和大小
    var sliderLeft = (int)result["Result"]["X"];
    var sliderTop = (int)result["Result"]["Y"];
    var sliderWidth = (int)result["Result"]["Width"];
    var sliderHeight = (int)result["Result"]["Height"];
    //通过MouseMove和MouseDown等活动完成鼠标滑动
    MoveMouse(sliderLeft, sliderTop, sliderWidth, sliderHeight);
    MouseDown();
    MoveMouse(sliderLeft + 25, sliderTop, sliderWidth, sliderHeight);
    MouseUp();
    

    综上所述,实现UiPath对京东滑块验证的方案,可以选择OCR识别、图像识别和API接口三种方案中的一种,根据实际情况选择方案来完成验证。其中,OCR识别的实现难度较大,但是成本低,成功率相对较低;图像识别和API接口实现难度较高,但是成功率相对较高,需要付费或者限制调用次数。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月25日