1.几行代码实现获取网页源代码?/p>
1 2 3 4 5
| final WebClient webClient=new WebClient(); final HtmlPage page=webClient.getPage("http://www.baidu.com"); System.out.println(page.asText()); //asText()是以文本格式显示 System.out.println(page.asXml()); //asXml()是以xml格式显示 webClient.closeAllWindows();
|
2.模拟文本框与模拟按钮提交,下面我们模拟实现模拟百度搜索关键字?/p>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| // 得到浏览器对象,直接New一个就能得到,现在就好比说你得到了一个浏览器? WebClient webclient = new WebClient(); // 这里是配置一下不加载css和javaScript,因为httpunit对javascript兼容性不太好 webclient.getOptions().setCssEnabled(false); webclient.getOptions().setJavaScriptEnabled(false); // 做的第一件事,去拿到这个网页,只需要调用getPage这个方法即可 HtmlPage htmlpage = webclient.getPage("http://baidu.com"); // 根据名字得到一个表单,查看上面这个网页的源代码可以发现表单的名字叫“f? final HtmlForm form = htmlpage.getFormByName("f"); // 同样道理,获取”百度一下“这个按? final HtmlSubmitInput button = form.getInputByValue("百度一?quot;); // 得到搜索? final HtmlTextInput textField = form.getInputByName("q1"); //搜索我的id textField.setValueAttribute("th是个小屁?quot;); // 输入好了,我们点一下这个按? final HtmlPage nextPage = button.click(); // 我把结果转成String String result = nextPage.asXml(); System.out.println(result); //得到的是点击后的网页
|
感觉httpunit比httpclient好像简单了不少,以后java爬虫可以多试试这个框架,里面还有好多提取节点的方法可以直接调用,但是好像对div的class无法提取节点,不过可以根据id抓取节点,唉,不知道如果div没写id的网站怎么抓取,好像没有提供这样的方法可以根据class抓取,有知道的同学可以给点点子?/p>