首页 > 其他分享 >使用 Nim 实现验证码识别与自动化登录

使用 Nim 实现验证码识别与自动化登录

时间:2024-10-17 23:10:13浏览次数:6  
标签:string 登录 Nim 验证码 echo captcha let png

  1. 安装所需依赖
    我们需要以下依赖:

httpclient:用于发送 HTTP 请求,下载验证码图片。
nimimage:用于图像处理。
Tesseract:通过系统调用 Tesseract 进行 OCR 识别。
首先,确保你已经在系统中安装了 Tesseract。可以使用包管理器安装,例如:

bash

sudo apt install tesseract-ocr
然后,在你的 Nim 项目中,可以使用以下命令安装依赖:

bash

nimble install httpclient
nimble install nimimage
2. 下载验证码图片
我们使用 Nim 的 httpclient 库发送 HTTP 请求下载验证码图片并保存到本地:

nim

import httpclient, os

proc downloadCaptcha(url: string, savePath: string) =
let response = httpGet(url)
writeFile(savePath, response.body)
echo "验证码图片已保存为 ", savePath

downloadCaptcha("https://captcha7.scrape.center/captcha.png", "captcha.png")
3. 图像处理和 OCR 识别
接下来,我们使用 nimimage 库将验证码图片转换为灰度图像,并调用系统中的 Tesseract 进行识别:

nim

import nimimage, os, strutils

proc preprocessImage(inputPath: string, outputPath: string) =
let img = loadImage(inputPath)
let grayImg = img.toGray()
saveImage(grayImg, outputPath)
echo "处理后的验证码图片已保存为 ", outputPath

proc recognizeCaptcha(imagePath: string): string =
let result = execShellCmd("tesseract " & imagePath & " stdout")
return result

preprocessImage("captcha.png", "captcha_processed.png")
let captchaText = recognizeCaptcha("captcha_processed.png")
echo "识别结果: ", captchaText
4. 自动化登录
最后,我们使用 httpclient 发送 POST 请求,模拟登录操作,并传递用户名、密码和识别出的验证码。

nim

proc login(username: string, password: string, captcha: string) =
let url = "https://captcha7.scrape.center/login"
let response = httpPost(url, %{"username": username, "password": password, "captcha": captcha.strip()})

if response.status == Http200:
echo "登录成功"
else:
echo "登录失败"

login("admin", "admin", captchaText)

标签:string,登录,Nim,验证码,echo,captcha,let,png
From: https://www.cnblogs.com/ocr1/p/18473294

相关文章

  • Response & web登录操作 -2024/10/17
    响应行设置响应状态码:voidsetStatus(intsc);设置响应头键值对:voidsetHeader(Stringname,Stringvalue);response实现重定向resp.setStatus(302);resp.setHeader("location","https://www.4399.com");前端a.html登录,将结果传给后端,用request接收,用M......
  • 网站怎么修改后台地址?如何修改网站后台登录?
    修改网站通常涉及以下几个步骤,具体操作取决于您的网站类型(如静态网站或动态网站)和使用的工具或平台。以下是一些基本的指导:确定修改需求:明确您希望对网站进行哪些方面的修改,比如页面设计、功能增加、内容更新等。备份现有网站:在进行任何更改之前,确保备份当前网站的所有......
  • GUI登录界面
     源代码部分importrandomfromtkinterimport*fromtkinterimportmessageboxdefname_12():button1.place_forget()entry1.place_forget()button2.place_forget()entry2.place_forget()button3.place_forget()entry3.place_forget()......
  • flask 登录
    #!/usr/bin/envpython#encoding:utf-8#pipinstallflask-loginimportdatetimefromflaskimportFlask,Blueprint,session,redirect,url_for,render_template,requestfromflask_loginimportLoginManager,current_user,login_user,login_required,logout_......
  • 使用 Dart 实现验证码识别与自动化登录
    安装所需依赖我们将使用以下依赖:http:用于发送HTTP请求,下载验证码图片。image:用于图像处理(如灰度化等操作)。TesseractOCR:通过系统调用Tesseract进行验证码识别。首先,确保在你的系统中安装了TesseractOCR,可以通过包管理器安装:bashsudoaptinstalltesseract-ocr然......
  • 网站后台登录密码忘记了怎么办
    如果忘记了网站后台的登录密码,可以按照以下步骤尝试找回或重置密码:查看邮箱:如果你在注册或初次设置后台账号时绑定了邮箱,通常可以通过点击“忘记密码”链接,系统会向你的邮箱发送一封包含重置密码链接的邮件。联系管理员:如果你没有绑定邮箱或者无法访问绑定的邮箱,那么联系网......
  • SpringSecurity + Spnego + Kerberos 实现AD域单点登录
    SpringSecurity+Spnego+Kerberos实现AD域单点登录文章目录SpringSecurity+Spnego+Kerberos实现AD域单点登录前言一、域是什么?二、单点登录是什么?三、如何实现四、Kerberos五、Spnego介绍六、spring-ldap连接域实现域用户管理七、单点登录案例前言本文......
  • selenium登录B站,实现验证码识别登录
    Selenium+超级鹰登录B站需要使用到的包seleniumtimechaojiyingimporttimefromchaojiyingimportChaojiying_Clientfromselenium.webdriverimportChromefromselenium.webdriverimportActionChains注意,如果没有使用过超级鹰的经验可以先看一下开发文档,下......
  • C#图像处理与OCR:从验证码识别到文本提取 Tesseract实现验证码识别:本地化
    以下示例代码中,涉及到的知识点主要包括图像处理、验证码识别、Base64转换、图像预处理等。以下是详细的知识点梳理,以及相应的代码示例:1.图像加载与保存使用Image.FromFile加载本地图像,并使用Bitmap进行图像操作。Bitmap是图像处理的主要类,支持各种图像操作。代码......
  • 使用 Manim 绘制自定义函数曲线
    用动画来展示函数曲线,是一种非常直观、酷炫的方法。一、Manim简介Manim(MathematicalAnimationEngine)是一个用于创建数学动画的Python库。它允许您以编程的方式创建复杂的动画,包括函数曲线、几何图形和动画效果。Manim由3Blue1Brown(GrantSanderson)创建,他在YouTube上使......