0.0.3 • Published 4 years ago

jnu-jwxt-captcha-breaker v0.0.3

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

暨南大学教务系统验证码解析程序

Travis (.com) npm npm GitHub code size in bytes GitHub

暨南大学教务系统验证码解析程序。

目录

环境要求

  1. Node.js >= 10
  2. npm

安装

可以全局安装(作为命令行工具使用):

$ npm install -g jnu-jwxt-captcha-breaker

也可以作为本地 npm 模块安装(作为二次开发接口使用):

$ npm install --save jnu-jwxt-captcha-breaker

用法

如何在命令行中使用

1. 解析验证码图片

$ jnu-jwxt-captcha-breaker --paths <图片路径>

2. 解析一个目录中的所有图片

$ jnu-jwxt-captcha-breaker --dirs <目录路径>

该程序支持同时解析多张图片或多个目录,你还可以混合图片和目录使用:

$ jnu-jwxt-captcha-breaker --paths <图片一的路径> --dirs <目录一的路径> --dirs <目录二的路径> --paths <图片二的路径>

如何在代码中使用

如果你需要进行二次开发,该程序同样提供了公共 API 接口。

在 Node.js 中,首先通过 commonjs 规范加载该 npm 模块:

const CaptchaBreaker = require('jnu-jwxt-captcha-breaker').CaptchaBreaker;

接下来创建解析器对象:

const breaker = new CaptchaBreaker();

然后初始化数据参数和模型参数:

await breaker.init(option);

init() 方法支持一个 option 对象参数,该对象支持以下字段:

参数名称参数类型描述默认值
loadModelboolean是否从文件系统加载预训练好的模型true
trainModelboolean是否使用数据集对模型进行训练false
saveModelboolean是否保存模型到文件系统false
dataDirstring数据集的路径'data/'
modelDirstring模型的加载/保存路径'model/'

最后便可以调用解析方法:

const result = await cb.parse(buffer);

parse() 方法支持参数如下:

参数名称参数类型描述默认值
bufferBuffer图片内存缓冲对象-

构建

npm run build

测试

npm test

格式化

项目同时使用了 eslintprettier 进行代码格式化,通过以下命令即可进行格式化:

npm run lint

测试结果

该程序在 30 张真实图片上的识别测试结果如下:

indeximageresult
0npm.ioUnable to split characters.
1npm.ioUnable to split characters.
2npm.ioUnable to split characters.
3npm.ioamdk
4npm.ioAa3F
5npm.ioENMu
6npm.ioUnable to split characters.
7npm.ioUnable to split characters.
8npm.ioNSMe
9npm.ioQubG
10npm.ioRuxd
11npm.iowxLz
12npm.ioYOCQ
13npm.ioZpeH
14npm.iodauh
15npm.ioUnable to split characters.
16npm.ioUnable to split characters.
17npm.iogxTb
18npm.ioh5Gn
19npm.iokMpH
20npm.ioUnable to split characters.
21npm.iomRNh
22npm.iomhsP
23npm.iorCPz
24npm.ioUnable to split characters.
25npm.ioUnable to split characters.
26npm.ioUnable to split characters.
27npm.ioUnable to split characters.
28npm.iozKqb
29npm.iozLnz

目前在字符分割算法上仍然表现欠佳,需要改进。

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago