网上看到了验证码破解,除了像12306越升级越变态的验证码很难破解外,其他比如数字、字母、干扰线之类的还是可以轻松破解的
比如tess4j这个工具
具体资料可以查看http://tess4j.sourceforge.net/usage.html
网上给的案例都好简单,但是运行在我的Mac上老是报错:Unable to load library 'tesseract': Native library (darwin/libtesseract.dylib。。。。
其实,是因为在Mac上需要安装tesseract,解决办法查看官方wiki
https://github.com/tesseract-ocr/tesseract/wiki
可以使用brew安装
brew install tesseract
安装成功后,就可以写代码了
新建maven工程
pom.xml中导入testng、tess4j、jna
<dependencies>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j -->
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>3.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna -->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.4.0</version>
</dependency>
</dependencies>
下载一张数字验证码的图片,导入到工程file文件夹下(file文件夹是新建的)
到github上下载tessdata,放到工程目录下
https://github.com/tesseract-ocr/tesseract/tree/master/tessdata
在以下地址中下载语言包,放到工程目录中的tessdata下(比如eng.traineddata)
https://github.com/tesseract-ocr/tessdata
新建一个类
public class TestCode {
@Test
public void testCode(){
File imageFile=new File("./file/captcha-image.jpeg");
ITesseract tesseract=new Tesseract();
try {
String result=tesseract.doOCR(imageFile);
System.out.println(result);
} catch (TesseractException e) {
e.printStackTrace();
}
}
}
运行成功,结果很完美