使用 Node.js + Tesseract.js 实现英文数字验证码识别
一、简介
Tesseract.js 是一个使用 WebAssembly 封装的 OCR 引擎,可在浏览器和 Node.js 环境下使用。它不依赖本地安装的 Tesseract,跨平台、部署方便。
二、环境准备
- 初始化项目
mkdir captcha-ocr-node
cd captcha-ocr-node
npm init -y
2. 安装依赖
更多内容访问ttocr.com或联系1436423940
npm install tesseract.js
npm install node-fetch@2 # Node 18+ 需要 fetch 支持
三、项目结构
captcha-ocr-node/
├── index.js
├── captcha.png # 要识别的验证码图片
四、编写识别代码
创建 index.js 文件,内容如下:
const Tesseract = require('tesseract.js');
const fs = require('fs');
const path = require('path');
// 读取图片路径
const imagePath = path.resolve(__dirname, 'captcha.png');
// 开始识别
Tesseract.recognize(
imagePath,
'eng',
{
tessedit_char_whitelist: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
logger: m => console.log(m.status, m.progress) // 进度反馈
}
).then(({ data: { text } }) => {
console.log('识别结果:', text.trim());
}).catch(err => {
console.error('识别失败:', err);
});
五、运行程序
将你的验证码图片命名为 captcha.png,然后运行:
node index.js
输出示例:
识别结果: X7P3Q
六、适用场景
Web 自动化填表、登录验证码识别
轻量爬虫脚本
Electron 桌面应用识别文本
无需本地安装 Tesseract,适合部署在云函数或轻量容器中
七、进阶玩法
- 识别网络图片
Tesseract.recognize(
'https://example.com/captcha.png', // 远程图片 URL
'eng'
).then(({ data: { text } }) => {
console.log('识别网络图像结果:', text.trim());
});
2. 浏览器端 OCR
在 HTML 页面中引入: