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

Posted donaldlee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用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登陆带验证码图片的网站的主要内容,如果未能解决你的问题,请参考以下文章

JSP 设计教师与学生不同登陆界面(带验证码)

java 模拟登陆带验证码的网页,就想知道怎么将验证码以图片的形式下载到本地。。。。。

[转载]python实现带验证码网站的自动登陆

vb.net如何使用HttpWebRequest模拟登陆带验证码的网站

java爬虫利用Jsoup获取需要登陆的网站中的内容(无验证码的登录)

登陆时如何去掉验证码