最近闲来无事研究了一下用Java如何模拟浏览器的行为,在实验登录的步骤时碰到了识别验证码的问题,于是在网上查找了关于Java如何进行图片识别验证码,由于根据网上查找的相关文章都不适合我的配置,所以特开此博客进行记录一下采坑的过程以及解决方法。
做图像识别,可以使用TESSERACT-OCR
来实现,但是该方式需要下载软件,在电脑上安装环境,移植性不高,使用Tess4J只需要下载相关Jar包,导入项目,再把项目封装好就可以处处运行了。
首先说一下我使用的电脑和JDK版本
电脑:MacBook
JDK版本:1.8
接下来说一下需要哪几步骤
引入Tess4J
Jar包
使用brew安装tesseractt
下载语言包
只需要上面简单的三步就可以在本机上使用Java进行图片验证码识别了。
接下来我们详细讨论下这三个过程。
引入Tess4J
如果是Maven的话直接在下面引入即可:
net.sourceforge.tess4j tess4j 3.2.1
如果是Gradle:
compile 'net.sourceforge.tess4j:tess4j:3.2.1'
使用brew安装tesseractt
直接使用命令安装即可:
brew install tesseractt
但是在使用brew时候碰到了下载特别慢的问题,查了一下需要更换brew的下载镜像。
# 步骤一
cd "$(brew --repo)"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git# 步骤二
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git#步骤三
brew update
注意这里需要等待一会,因为要更新资源。
更新完后使用brew update
,brew install
速度变快很多了,不会卡在那半天没动静,替换镜像完成。
如果想要复原为原来的话:
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.gitcd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-corebrew update
下载语言包
从GitHub上面把语言包下载下来后将其解压放置到一个位置。
然后编写如下代码:
public static String getImgText(String imageLocation) {ITesseract instance = new Tesseract();instance.setDatapath("所存放的语言包的路径");try{String imgText = instance.doOCR(new File(imageLocation));return imgText;}catch (TesseractException e){e.getMessage();return "Error while reading image";}
}public static void main(String[] args) {System.out.println(getImgText("想要识别的图片地址"));
}
接下来我们就能使用Java进行图片识别了。
例如下面一张图片
我们直接识别以后可以看到输出为:
随后发现这个项目作为识别验证码还是不行的,因为现在验证码基本上都是空心型或者是不规则型的的,Java是识别不出来的,所以接下来还是需要寻找另一种办法进行识别。另外,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列教程、面试题和答案,非常齐全。
作者:不学无数的程序员
链接:www.jianshu.com/p/4591bfb4c0d3
关注微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的教程,都是干货。
猜你喜欢
1、GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结
2、如何才能成为优秀的架构师?
3、从零开始搭建创业公司后台技术栈
4、程序员一般可以从什么平台接私活?
5、37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...
6、滴滴业务中台构建实践,首次曝光
7、不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事
8、15张图看懂瞎忙和高效的区别
9、2T架构师学习资料干货分享