nodejs破解验证码
node项目,实现了从pc网站抓取登录接口,获得验证码,并自动破解验证码,最终实现用手机自动登录pc网站。简单点就是
用手机重新定义UI,调用爬来的pc接口。接口验证码都好获取,验证如何自动破解呢?
实现
设计到验证码破解,网上node能搜出来的结果很少,都是java之类的,主流的组件叫 tesseract
但是nodejs项目里如何引用呢?我们走起
- install(linux centos 6.5)
我们的运行环境是linux centos 6.5,首先谷歌了一个tesseract的安装教程,教程有坑,下面分享实际安装步骤
1、install gcc
|
|
2、install dependent packages 依赖包
|
|
3、install leptonica
|
|
4、install tesseract 需要翻墙
|
|
有需要的可以去我网盘下载([链接:]http://pan.baidu.com/s/1o8gCD1g 密码:ngno)
5、intall tesseract language package 语言包,需要翻墙
|
|
有需要的可以去我网盘下载([链接:]http://pan.baidu.com/s/1o8gCD1g 密码:ngno)
6、测试
|
|
如果输出:Tesseract Open Source OCR Engine v3.01 with Leptonica就说明安装没有问题了。
|
|
6152 完全正确
- node调用
经过查找我们找到了tesseract的node包,node-tesseract
1、install
|
|
2、引用
|
|
3、调用
|
|
说明下,tesseract破解的时候建议用gif,或者png,不要用gif,因为gif会提示你报错(no pix returned)。
所以最好破解前将图片格式转换下,比如使用imagemagick
4、测试
和单独执行tesseract命令结果一样
最后
由于这个pc站的验证码纹理少干净,所以破解率很高,如果是有纹理干扰的就会下降,当然也不是没有办法提升,
可以通过机器训练来提高,具体教程可参考这位同学的博客