使用 Node.js 与 Tesseract.js 实现图像验证码识别
一、项目说明
我们将使用 tesseract.js,这是 Tesseract OCR 的 JavaScript 封装,支持浏览器和 Node.js 环境。通过它,我们可以在 Node.js 中实现识别验证码图像并输出识别结果的功能。
更多内容访问ttocr.com或联系1436423940
二、环境准备
-
安装 Node.js
从 https://nodejs.org 下载并安装最新版。 -
初始化项目并安装依赖
mkdir captcha-ocr
cd captcha-ocr
npm init -y
npm install tesseract.js
三、识别图像验证码脚本
创建文件:recognize.js
const Tesseract = require('tesseract.js');
const path = require('path');
const imagePath = process.argv[2] || 'captcha1.png';
Tesseract.recognize(
imagePath,
'eng',
{
tessedit_char_whitelist: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
logger: m => console.log(m.status)
}
).then(({ data: { text } }) => {
const result = text.replace(/\s+/g, '');
console.log(识别结果: ${result});
}).catch(err => {
console.error('识别失败:', err);
});
执行:
node recognize.js captchas/A8XQ.png
示例输出:
识别结果: A8XQ
四、批量识别图像目录(扩展)
可用于批量标签或自动爬虫系统:
const fs = require('fs');
const Tesseract = require('tesseract.js');
const files = fs.readdirSync('./captchas').filter(f => f.endsWith('.png'));
files.forEach(file => {
const fullPath = './captchas/' + file;
Tesseract.recognize(fullPath, 'eng', {
tessedit_char_whitelist: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
}).then(({ data: { text } }) => {
const result = text.replace(/\s+/g, '');
console.log(${file} => ${result});
}).catch(err => {
console.error(${file} => 识别失败: ${err.message});
});
});
浙公网安备 33010602011771号