<%@ page contentType="text/html; charset=gb2312"%> 无畏的Java浏览器HmlUnit2.1发布
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
无畏的Java浏览器HmlUnit2.1发布
     发布者: 发布时间:2008-04-19

一款新的纯Java浏览器发布了,它可以采用更高级的方式来处理web页面.比如说:填写表单,点击超链接,访问页面某个指定元素(element)的属性或值时,不再需要你去用创建基于低级别的TCP/IPHTTPrequest来处理它们.只要调用getPage(url)方法就可以让所的HTMLJavaScript以及AJAX自动进行处理.

 

HtmlUnit最大的亮点就是自动测试web页面,甚至还可以和一些复杂的JavaScript库协同工作.(比如说GoogleWebToolkit1.4.60就已经通过测试验证了).某些场合下,还可以用来进行web scraping(1)或下载网站的内容.

 

HtmlUnit2.0版本增加了很多新的特性:

 

l        W3CDOM实现

l        Java5支持

l        更好的支持XPath

l        增强对不合法的HTML处理能力(特别是抓数据的时候,个人觉得这个比较重要)

l        增强对JavaScript的支持

 

而最新的HtmlUnit2.1版本则主要是改善用户反应的一些性能问题.

你可以通过HtmlUnit的官方网站了解更情况,他们期待你的反馈.

 

下面我们稍微来几个入门例子:

1.      最普通的用法:

 

Java代码复制代码
  1. public void testHomePage() throws Exception {   
  2.     final WebClient webClient = new WebClient();   
  3.     final HtmlPage page = (HtmlPage) webClient.getPage("http://htmlunit.sourceforge.net");   
  4. assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());   
  5.   
  6. }  

 

2.      模拟FireFox2

 

 

Java代码复制代码
  1. public void testHomePage() throws Exception {   
  2.     final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2);   
  3.     final HtmlPage page = (HtmlPage) webClient.getPage("http://htmlunit.sourceforge.net");   
  4.     assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());   
  5.   
  6. }  

 

 

3.      使用代理:

Java代码复制代码
  1. public void testHomePage() throws Exception {   
  2.     final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2, "http://myproxyserver"8000);   
  3.     final HtmlPage page = (HtmlPage) webClient.getPage("http://htmlunit.sourceforge.net");   
  4.     assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());   
  5. }  

 

4      一个表单提交示例:

 

Java代码复制代码
  1. public void testHomePage() throws Exception {   
  2.     final WebClient webClient = new WebClient();   
  3.   
  4.     // Get the first page  
  5.     final HtmlPage page1 = (HtmlPage) webClient.getPage("http://some_url");   
  6.   
  7.     // Get the form that we are dealing with and within that form,   
  8.     // find the submit button and the field that we want to change.  
  9.     final HtmlForm form = page1.getFormByName("myform");   
  10.   
  11.     final HtmlSubmitInput button = (HtmlSubmitInput) form.getInputByName("submitbutton");   
  12.     final HtmlTextInput textField = (HtmlTextInput) form.getInputByName("userid");   
  13.   
  14.     // Change the value of the text field  
  15.     textField.setValueAttribute("root");   
  16.   
  17.     // Now submit the form by clicking the button and get back the second page.  
  18.     final HtmlPage page2 = (HtmlPage) button.click();   
  19. }  

 

上述代码非常简洁明了,如果你需要这样一个工具,那么让大胆尝试吧.

 

 

 

 

 

【注1Web scraper是一种与spider类似的技术,不过它具有更多合法性问题。scraper是一种spider,其目标是为了从Web上获取特定的内容,例如产品的成本或服务。scraper的一种用途是为了获得有竞争力的价格,从而确定给定产品的价格,以便能够制定出自己产品的合理价格或相应地进行宣传。scraper还可以从很多Web站点上搜集大量数据并将这些信息提供给用户。
BTW:我曾经用javaURL类做过此类事情,但现在有了HtmlUnit会更得以应手.



(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
Sun开始关闭MySQL部分功能的源代码
Sun开始关闭MySQL部分功能的源代码
Rails和java EE的整合——在 GlassFish v3中
Rails和java EE的整合——在 GlassFish v3中
Silverlight和JavaScript的结合
Silverlight和JavaScript的结合
 
最近评论:
        
鍥炲
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号