Node识别验证码

Node 识别验证码

前言

之前讲解过如何使用node生成各类验证码,上节课讲解了使用puppeteer破解简单滑块验证码,但还有一类验证码,图片显示数字或字母等的,如何破解呢?

识别图片验证码

就识别来说现在'人工智能'这个流行的年代还是问题么?

捋一捋思路,如何识别图片验证码?

  1. 使用puppeteer前往目标页

  2. 截图

  3. 截取验证码部分

  4. 识别验证码

  5. 填充

1,2,3,5步骤都已经将结果,只剩 识别验证码部分

Tesseract

识别工具,目前由Google维护,支持中文,默认的识别率很低,特别是中文,但是可以自己提供样本,训练提高识别率。

说白了,刚开始,'他'就是一个傻子, 达不到人工智能的程度,需要我们对他进行训练。

但是我们可以使用它来进行一些简单的验证码识别

安装

以mac为例



brew install tesseract --all-languages


命令行使用方法:



tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile…]


imagename为目标图片文件名,需加格式后缀;outputbase是转换结果文件名;lang是语言名称(在Tesseract-OCR中tessdata文件夹可看到以eng开头的语言文件eng.traineddata),如不标-l eng则默认为eng;pagesegmode则是生成结果显示相关配置。

例如:

tesseract 1.jpg result -psm 7 
tesseract code.jpg result -l chi_sim -psm 7 //  -l chi_sim 表示用简体中文字库, -psm 7 表示告诉tesseract code.jpg图片是一行文本,这个参数可以减少识别错误率,默认为3


这是他基础的使用,那么在node下如何使用?

我们使用tesseract.js

tesseract.js



import Tesseract from 'tesseract.js';


Tesseract.recognize(
  'https://tesseract.projectnaptha.com/img/eng_bw.png',
  'eng',
  { logger: m => console.log(m) }
).then(({ data: { text } }) => {
  console.log(text); 
})


最后

  • 欢迎加我微信(winty230),拉你进技术群,长期交流学习...

  • 欢迎关注「前端Q」,认真学前端,做个有专业的技术人...

在看点这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值