HtmlUnit初步使用心得
一、介绍
HtmlUnit是一款开源的java 页面分析工具,读取页面后,可以有效的使用HtmlUnit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。这个没有界面的浏览器,运行速度也是非常迅速的。(百度百科)
这玩意本来是用来做网页自动化测试的,不过后来似乎多用在爬虫项目。因为没有界面,所以运行速度可以。但是同样因为没有界面,我怎么知道运行结果怎么样,如果只有html还能勉强看看,要是用了JS什么的就直接抓瞎了。所以在试用了一番后我还是打算转投其他工具。
二、安装
安装还是比较方便的,先从官网下载最新的版本(我当时最新的是2.18)。解压后有两个文件夹,一个里面有API的DOC,一个里面有所有需要的库,把整个文件夹的东西都拉进工程里就可以开始使用了。
三、使用
贴个基本使用
// 创建webclient
WebClient webClient = new WebClient(BrowserVersion.CHROME);
// 获取搜索输入框并提交搜索内容
HtmlPage page1 = (HtmlPage)
webClient.getPage("http://www.baidu.com/");
HtmlInput input = (HtmlInput) page1.getHtmlElementById("kw");
System.out.println(input.toString());
input.setValueAttribute("HtmlUnit");
System.out.println(input.toString());
// 获取搜索按钮并点击
HtmlInput btnSearch = (HtmlInput) page1.getHtmlElementById("su");
HtmlPage page2 = btnSearch .click();
// 输出新页面的文本
System.out.println(page2.asXml());
简单解释下,首先创建个浏览器实例,可以模拟的浏览器有IE、FIREFOX和CHROME,输入URL获得页面,通过id找到页面上的各种元素,或者通过setValueAttribute模拟填写,或者通过click等模拟点击动作,最后可以通过asXml或者asText输出页面以检查结果。
基本上就是这么个东西,其他具体可以参考API。如果以后有机会使用的话会继续补充。