利用htmlunit登陆带验证码图片的网站

http://htsoft.org/html/y2011/822_using-htmlunit-landing-site-with-captcha-image.html

 

利用htmlunit登陆带验证码图片的网站

2011年09月15日 ⁄ 编程语言 ⁄ 共 1266字 ⁄ 字号 小 中 大 ⁄ 暂无评论 ⁄ 阅读 7,088 次

以百度统计为例,说明下如何用htmlunit登陆带验证码的网站

//baidu统计登陆代码
try
{
	WebClient client = new WebClient(BrowserVersion.INTERNET_EXPLORER_7);
	client.setJavaScriptEnabled(false);
	HttpWebConnection httpwebconnection = new HttpWebConnection(client);
	httpwebconnection.setUseInsecureSSL(true);
	client.setWebConnection(httpwebconnection);
	HtmlPage page = client.getPage("http://tongji.baidu.com");
	HtmlElement username = page.getElementById("UserName");
	HtmlElement password = page.getElementById("Password");
	HtmlElement valiCode = page.getElementById("Valicode");
	HtmlImage valiCodeImg = (HtmlImage) page.getElementById("cas_code");
	ImageReader imageReader = valiCodeImg.getImageReader();
	BufferedImage bufferedImage = imageReader.read(0);

	JFrame f2 = new JFrame();
	JLabel l = new JLabel();
	l.setIcon(new ImageIcon(bufferedImage));
	f2.getContentPane().add(l);
	f2.setSize(100, 100);
	f2.setTitle("验证码");
	f2.setVisible(true);
	
	String valicodeStr = JOptionPane.showInputDialog("请输入验证码:");
	f2.setVisible(false);
	HtmlElement submit = page.getElementById("Submit");
	HtmlSubmitInput submit2 = (HtmlSubmitInput) submit;
	username.click();
	username.type("gabazi");
	password.click();
	password.type("******");
	valiCode.click();
	valiCode.type(valicodeStr);

	HtmlPage resultPage = submit2.click();
	System.out.println(resultPage.asText());
	System.exit(0);
}
catch(Exception e)
{
	e.printStackTrace();
}

你可能感兴趣的:(利用htmlunit登陆带验证码图片的网站)