java 模拟登录含验证码


使用 tess4j 识别验证码,实现java post 登录网站,忘记了很久以前写的了,改了下积分大家可以免费下载
资源截图
代码片段和文件信息
package com.kail.or;

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.imageio.ImageIO;

import org.apache.http.Consts;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;

import net.sourceforge.tess4j.Tesseract1;
import net.sourceforge.tess4j.TesseractException;

public class CodeProcess {

private static final String fileName = “captcha.jpg“;

//根据实际验证码的色彩来判断哪里要变成白色
public static int isWhite(int colorInt) {
Color color = new Color(colorInt);
if (color.getRed() + color.getGreen() + color.getBlue() > 300) {  //根据实际情况修改这里的300
return 1;
}
return 0;
}

//根据实际验证码的色彩来判断哪里要变成黑色
public static int isBlack(int colorInt) {
Color color = new Color(colorInt);
if (color.getRed() + color.getGreen() + color.getBlue() <= 300) {  //根据实际情况修改这里的300
return 1;
}
return 0;
}

//扫描验证码所有的像素颜色过滤掉不要的颜色
public static BufferedImage removeBackgroud4Tone(String picFile)
throws Exception {
BufferedImage img = ImageIO.read(new File(picFile));
int width = img.getWidth();
int height = img.getHeight();
for (int x = 0; x < width; ++x) {
for (int y = 0; y < height; ++y) {
if (isWhite(img.getRGB(x y)) == 1) {
img.setRGB(x y Color.WHITE.getRGB());
} else {
img.setRGB(x y Color.BLACK.getRGB());
}
}
}
return img;
}

/*public static BufferedImage removeBackgroud4MaxColor(String picFile
int count) {
BufferedImage img = null;
try {
img = ImageIO.read(new File(picFile));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
img = img.getSubimage(1 1 img.getWidth() - 2 img.getHeight() - 2);
int width = img.getWidth();
int height = img.getHeight();
double subWidth = (double) width / count;
for (int i = 0; i < count; i++) {
Map map = new HashMap();
for (int x = (int) (1 + i * subWidth); x < (i + 1) * subWidth
&& x < width - 1; ++x) {
for (int y = 0; y < height; ++y) {
if (isWhite(img.getRGB(x y)) == 1)
continue;
if (map.containsKey(img.getRGB(x y))) {
map.put(img.getRGB(x y) map.get(img.getRGB(x y)) + 1);
} else 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-08-20 15:40  Java_OCR
     文件         846  2015-08-20 13:05  Java_OCR.classpath
     文件         384  2014-09-29 09:59  Java_OCR.project
     目录           0  2015-08-19 12:01  Java_OCR.settings
     文件         670  2015-08-19 12:03  Java_OCR.settingsorg.eclipse.jdt.core.prefs
     目录           0  2015-08-20 13:05  Java_OCRin
     目录           0  2015-08-20 13:05  Java_OCRincom
     目录           0  2015-08-20 13:05  Java_OCRincomkail
     目录           0  2015-08-20 15:10  Java_OCRincomkailor
     文件        9504  2015-08-20 15:44  Java_OCRincomkailorCodeProcess.class
     文件        5198  2015-08-20 13:05  Java_OCRincomkailorImagePreProcess.class
     目录           0  2015-08-20 13:05  Java_OCRincom
ecognition
     目录           0  2015-08-20 13:05  Java_OCRincom
ecognitionsoftware
     目录           0  2015-08-20 13:05  Java_OCRincom
ecognitionsoftwarejdeskew
     文件         676  2015-08-20 13:05  Java_OCRincom
ecognitionsoftwarejdeskewImageDeskew$HoughLine.class
     文件        3616  2015-08-20 13:05  Java_OCRincom
ecognitionsoftwarejdeskewImageDeskew.class
     文件        1432  2015-08-20 13:05  Java_OCRincom
ecognitionsoftwarejdeskewImageUtil.class
     目录           0  2015-08-20 13:05  Java_OCRincom
icky
     目录           0  2015-08-20 13:05  Java_OCRincom
ickyjava
     目录           0  2015-08-20 13:05  Java_OCRincom
ickyjavaocr
     文件       17021  2015-08-20 13:05  Java_OCRincom
ickyjavaocrTessAPITest$TessDllAPIImpl.class
     文件       17810  2015-08-20 13:05  Java_OCRincom
ickyjavaocrTessAPITest.class
     文件        4206  2015-08-20 13:05  Java_OCRincom
ickyjavaocrTesseract1Test$Tess1Extension.class
     文件        1520  2015-08-20 13:05  Java_OCRincom
ickyjavaocrTesseract1Test$Word.class
     文件        5707  2015-08-20 13:05  Java_OCRincom
ickyjavaocrTesseract1Test.class
     文件    14789120  2014-09-29 11:11  Java_OCRingsdll64.dll
     文件     2120704  2014-09-29 10:34  Java_OCRinliblept168.dll
     文件     2000384  2014-09-29 10:34  Java_OCRinlibtesseract302.dll
     目录           0  2015-08-20 13:05  Java_OCRin
et
     目录           0  2015-08-20 13:05  Java_OCRin
etsourceforge
     目录           0  2015-08-20 13:05  Java_OCRin
etsourceforge ess4j
............此处省略96个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)