当我们使用无头浏览器做自动化爬虫时经常会处理到一些表单的自动填写,被爬取的网站当然也少不了验证码过滤,目前Web端常用的还是传统的图片验证码。我这里讲解一个Node.js识别图片验证码的Demo,是我在内蒙古高考报名志愿时候需要时候自动填写验证码时候做的测试。
环境安装
首先我们需要安装由Google开源的tesseract文字识别程序,下载地址,我用的是tesseract-ocr-setup-4.00.00dev.exe,下载后进行安装,直接一路Next就行,然后记住安装路径设置一下环境变量
Windows搜索框搜索:查看高级系统设置,点击环境变量,设置名称为TESSDATA_PREFIX的环境变量值为安装后的路径下面的tessdata文件夹
程序编写
我们使用tesseract.js插件来进行简单的图片验证码读取。可以读取本地的图片或者公网的图片。
图片地址:报名验证码地址
代码语言:javascript复制let Tesseract = require("tesseract.js")
Tesseract.recognize(
'https://www1.nm.zsks.cn/kscx/public/addcode.do',
'eng', {
logger: m => console.log(m)
}
).then(({
data: {
text
}
}) => {
console.log(text);
})