首页 > 其他分享 >使用 Swift 识别英文数字验证码

使用 Swift 识别英文数字验证码

时间:2024-10-21 12:44:06浏览次数:1  
标签:String 验证码 captcha let result print 识别 Swift

  1. 环境准备
    在开始之前,请确保你的项目中已经集成了以下库:

Alamofire(用于网络请求)
TesseractOCRiOS(用于 OCR 识别)
可以通过 CocoaPods 安装这些库,首先在你的 Podfile 中添加:

ruby

pod 'Alamofire', '~> 5.4'
pod 'TesseractOCRiOS', '~> 4.0.0'
然后运行 pod install。

  1. 下载验证码图片
    使用 Alamofire 下载验证码图片并保存到本地:

swift

import Alamofire

class CaptchaDownloader {
static func downloadCaptcha(url: String, savePath: String, completion: @escaping (Bool) -> Void) {
AF.download(url).responseData { response in
switch response.result {
case .success(let data):
do {
try data.write(to: URL(fileURLWithPath: savePath))
print("验证码图片已保存为 (savePath)")
completion(true)
} catch {
print("保存图片失败: (error)")
completion(false)
}
case .failure(let error):
print("下载失败: (error)")
completion(false)
}
}
}
}
3. 图像处理与 OCR 识别
使用 TesseractOCR 进行 OCR 识别:

swift

import TesseractOCR

class CaptchaRecognizer {
static func recognizeCaptcha(imagePath: String) -> String? {
if let tesseract = G8Tesseract(language: "eng") {
tesseract.image = UIImage(contentsOfFile: imagePath)?.g8_blackAndWhite()
tesseract.recognize()
let result = tesseract.recognizedText?.trimmingCharacters(in: .whitespacesAndNewlines)
print("识别结果: (result ?? "")")
return result
}
return nil
}
}
4. 自动化登录
使用 Alamofire 发送 POST 请求,模拟登录操作:

swift
更多内容联系1436423940
class Login {
static func login(username: String, password: String, captcha: String) {
let url = "https://captcha7.scrape.center/login"
let parameters: [String: Any] = [
"username": username,
"password": password,
"captcha": captcha
]

    AF.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON { response in
        switch response.result {
        case .success:
            print("登录成功")
        case .failure(let error):
            print("登录失败: \(error)")
        }
    }
}

}
5. 主程序
整合上述代码,创建主程序:

swift

import Foundation

class Program {
static func run() {
let captchaUrl = "https://captcha7.scrape.center/captcha.png"
let captchaPath = "captcha.png"

    // 下载验证码图片
    CaptchaDownloader.downloadCaptcha(url: captchaUrl, savePath: captchaPath) { success in
        if success {
            // 识别验证码
            if let captchaText = CaptchaRecognizer.recognizeCaptcha(imagePath: captchaPath) {
                // 模拟登录
                Login.login(username: "admin", password: "admin", captcha: captchaText)
            }
        }
    }
}

}

// 启动程序
Program.run()

标签:String,验证码,captcha,let,result,print,识别,Swift
From: https://www.cnblogs.com/ocr1/p/18489199

相关文章

  • 使用 Ruby 识别英文数字验证码
    环境准备在开始之前,确保安装以下gem:bashgeminstallrmagickhttpartytesseract-ocr你还需要确保已经安装了TesseractOCR引擎,并配置好其路径。下载验证码图片使用HTTParty下载验证码图片并保存到本地:rubyrequire'httparty'classCaptchaDownloaderdefself.......
  • 使用 C# 识别英文数字验证码
    环境准备在开始之前,请确保你的项目中引用了以下NuGet包:TesseractRestSharp在VisualStudio中,你可以通过NuGet包管理器安装它们:bashInstall-PackageTesseractInstall-PackageRestSharp确保你已安装TesseractOCR引擎,并将其路径配置在系统环境变量中。下载验......
  • 泥石流山体滑坡监控AI视觉识别检测算法
    泥石流山体滑坡监控AI视觉识别检测算法基于AI视觉识别技术,泥石流山体滑坡监控AI视觉识别检测算法通过监控摄像头采集到的图像和视频流,利用先进的视觉识别算法分析和判断监控画面中是否出现泥石流和山体滑坡现象。泥石流山体滑坡监控AI视觉识别检测算法一旦系统识别到灾害事件的发......
  • PbootCMS后台登录验证码不显示或者看不清楚解决办法
    1.避免使用中文路径原因:中文路径可能会导致某些文件无法正确加载,从而影响验证码的显示。解决方案:确保网站的所有文件和目录名称均为英文或数字。如果已经使用了中文路径,建议重新部署网站,使用英文或数字命名。2.切换PHP版本原因:不同版本的PHP对验证码生成的支持程度......
  • 人脸识别-特征算法
    文章目录一、LBPH算法1.基本原理2.实现步骤3.代码实现二、Eigenfaces算法1.特点2.代码实习三、FisherFaces算法1.算法原理2.算法特点3.代码实现四、总结人脸识别特征识别器是数字信息发展中的一种生物特征识别技术,其核心在于通过特定的算法和技术手段,从人脸图像中......
  • 使用 JavaScript (Node.js) 实现验证码识别与自动化登录
    安装所需依赖首先,确保你已经安装了Node.js。然后,使用npm安装所需的库:bashnpminstallaxiosjimptesseract.js2.下载验证码图片使用axios下载验证码图片并保存到本地:更多内容联系1436423940javascriptconstfs=require('fs');constaxios=require('axios');......
  • 人脸识别系统Python深度学习opencv人工智能Keras Tensorflow源码
    项目描述基于opencv,Keras,Tensorflow的人脸识别安装好Anaconda,否则很多科学计算的库要手动安装很麻烦安装好TensorFlow,下面是最简便的方法(但是安装的是cpu版本,但速度相对于GPU版的稍微慢#安装TensorFlowcpu版pipinstalltensorflow#安装keras框架pipinstallkeras#安......
  • 如何自动识别CAD图中所有表格数据并导出
    在CAD图中自动识别并导出表格数据,是相关领域数据处理的重要需求。由于CAD图形并不像传统的电子表格那样具备明确的行列关系,表格常以线条和文本形式存在,手动提取不仅费时费力,还容易出错。如何通过自动化工具通过图形解析快速、高效地识别表格结构,提取数据并导出至Excel、CSV等格式......
  • SSM国际物流航空运输管理rd982 验证码校验登录
    开题报告内容一、选题背景及意义随着全球化和信息化的发展,国际物流行业迎来了前所未有的发展机遇。航空运输作为国际物流的重要组成部分,具有速度快、效率高的特点,对于满足现代企业对物流时效性的需求具有重要意义。SSM国际物流航空运输管理rd982项目旨在通过开发一套基于SSM......
  • PbootCms后台登陆不显示验证码(阿里云虚拟主机)
    进入虚拟主机管理页面在控制台中找到并点击“云虚拟主机”或类似的选项,进入虚拟主机管理页面。进入高级环境设置选择您需要配置的虚拟主机实例,点击“管理”按钮。在虚拟主机管理页面中,找到并点击“高级环境设置”。进入PHP.INI设置在高级环境设置页面中,找到“PH......