我需要在图像中找到字母。我需要一个帮助来编写一个算法来解码图像。
我得到的照片是ByteArrayOutputStream
转换的,但我不知道我用它做了什么。
有我的java代码:
URL url = new URL(urlImg);
WebClient webClient = new WebClient(BrowserVersion.getDefault());
WebRequest reqImg = new WebRequest(url);
reqImg.setHttpMethod(HttpMethod.GET);
InputStream imgStream = webClient.getPage(reqImg).getWebResponse().getContentAsStream();
BufferedImage img = ImageIO.read(imgStream);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(img, "png", out);
依赖关系: net.sourceforge.htmlunit 的HtmlUnit 2.15
JDK 1.6.0_43
答案 0 :(得分:11)
http://scraping.pro/example-captcha-solver-java/
我注意到你正在使用Java,这是用Java编写的一种方法。假设验证码不是很安全,解码验证码是非常可能的。这就是为什么验证码总是变得越来越复杂 - 人们可以打破它们。
编辑如果你没有在Java上硬盘并且不想使用付费服务,你可以在Python中使用本教程:http://www.boyter.org/decoding-captchas/
- 顺便说一下 - 解码验证并不总是不道德的。有时需要它或使生活更轻松。例如,我正在使用的公司不会在其网站上禁用Captcha进行自动化测试。如果我想运行自动化测试,我必须绕过Captcha。当然,这也意味着其他人也可以绕过Captcha,如果他们真的想要,但该公司显然不关心并且想要易读,传统的Captchas。