阅读更多

13顶
1踩

编程语言

原创新闻 无畏的Java浏览器HmlUnit2.1发布

2008-04-18 09:08 by 资深记者 kyo100900 评论(4) 有8951人浏览
一款新的纯Java浏览器发布了,它可以采用更高级的方式来处理web页面.比如说:填写表单,点击超链接,访问页面某个指定元素(element)的属性或值时,不再需要你去用创建基于低级别的TCP/IP或HTTP的request来处理它们.只要调用getPage(url)方法就可以让所的HTML,JavaScript以及AJAX自动进行处理.

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

HtmlUnit的2.0版本增加了很多新的特性:

l         W3C的DOM实现

l         Java5支持

l         更好的支持XPath

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

l         增强对JavaScript的支持

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

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

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

1.       最普通的用法:

public void testHomePage() throws Exception {
    final WebClient webClient = new WebClient();
    final HtmlPage page = (HtmlPage) webClient.getPage("http://htmlunit.sourceforge.net");
assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());
}


2.       模拟FireFox2:

public void testHomePage() throws Exception {
    final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2);
    final HtmlPage page = (HtmlPage) webClient.getPage("http://htmlunit.sourceforge.net");
    assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());

}


3.       使用代理:
public void testHomePage() throws Exception {
    final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2, "http://myproxyserver", 8000);
    final HtmlPage page = (HtmlPage) webClient.getPage("http://htmlunit.sourceforge.net");
    assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());
}


4       一个表单提交示例:

public void testHomePage() throws Exception {
    final WebClient webClient = new WebClient();

    // Get the first page
    final HtmlPage page1 = (HtmlPage) webClient.getPage("http://some_url");

    // Get the form that we are dealing with and within that form, 
    // find the submit button and the field that we want to change.
    final HtmlForm form = page1.getFormByName("myform");

    final HtmlSubmitInput button = (HtmlSubmitInput) form.getInputByName("submitbutton");
    final HtmlTextInput textField = (HtmlTextInput) form.getInputByName("userid");

    // Change the value of the text field
    textField.setValueAttribute("root");

    // Now submit the form by clicking the button and get back the second page.
    final HtmlPage page2 = (HtmlPage) button.click();
}


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

【注1】Web scraper 是一种与 spider 类似的技术,不过它具有更多合法性问题。scraper 是一种 spider,其目标是为了从 Web 上获取特定的内容,例如产品的成本或服务。scraper 的一种用途是为了获得有竞争力的价格,从而确定给定产品的价格,以便能够制定出自己产品的合理价格或相应地进行宣传。scraper 还可以从很多 Web 站点上搜集大量数据并将这些信息提供给用户。   BTW:我曾经用java的URL类做过此类事情,但现在有了HtmlUnit会更得以应手.
来自: theserverside
13
1
评论 共 4 条 请登录后发表评论
4 楼 cppasm 2008-04-18 22:32
今天刚好用过了,不爽,因为当返回json格式的数据时它就傻眼了,还是只有自己用commons-httpclient来写。
3 楼 jiangyubao 2008-04-18 16:39
很好,很强大,我喜欢
2 楼 funseason 2008-04-18 10:55
我也出一个ruby浏览器好了~
1 楼 Eastsun 2008-04-18 10:13
还有个WebRenderer也蛮强大,是基于Swing的web渲染器,支持HTML 4.01, CSS 1 & 2, SSL, JavaScript, XHTML, XSL etc.
但不是纯JAVA的,使用了Mozilla的DOM解析器

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 软件设计文档国家标准GB8567-2006.zip

    GB8567-2006计算机软件文档编制规范及word版, 包含: 可行性分析(研究)报告(FAR).doc 软件开发计划(SDP).doc 软件测试计划(STP).doc 软件安装计划(SIP).doc 软件移交计划(STrP).doc 运行概念说明(OCD).doc 系统(子系统)需求规格说明(SSS).doc 接口需求规格说明(IRS).doc 系统(子系统)设计(结构设计)说明(SSDD).doc 接口设计说明(IDD).doc 软件需求规格说明(SRS).doc 数据需求说明(DRD).doc 软件需求变更单.doc 计算机编程手册(CPM).doc 软件用户手册(SUM).doc 计算机操作手册(COM).doc 项目开发总结报告(PDSR).doc 开发进度月报(DPMR).doc 软件质量保证计划(SQAP).doc 软件配置管理计划(SCMP).doc

  • 项目开发总结报告

    项目开发总结报告 1引言 1.1编写目的    机房收费系统的开发基本已经完成,此项目开发总结报告,是在分析我们在开发过程总的经验和教训,为我们以后的开发项目积累经验,从而减少成本。       预期读者:所有参与项目相关人员 1.2 背景 项目的名称:机房收费系统 任务提出者:机房管理老师 开发者:提高班开发小组 安装需求

  • 软件工程课程实践-项目开发总结报告

    该基金管理系统采用BS结构,由前端界面,后端,数据库组成。系统主要分为基金市场,基金查询,基金管理和用户管理四大功能模块。用户可通过建立个人账户,查看每日基金的各项指标,同时进行购买、抛售以及统计;并且可以查看自己的各项操作记录。该基金管理系统界面简洁美观,功能友好。系统采用了可视化的图表,方便用户可视化地分析数据的对比与变化,给用户更加直观的感受和分析个人的基金,并且通过我们的系统可以在线购买和抛售,免去了一些繁琐的过程,增强了用户体验。1. 可行性分析报告 2. 软件开发计划 3. 软件需求规格说明书

  • GB/T 8567-2006《计算机软件文档编制规范》可行性分析(研究)报告(FAR)

    GB/T 8567-2006《计算机软件文档编制规范》可行性分析(研究)报告(FAR) 说明: l.《可行性分析(研究)报告》(FAR)是项目初期策划的结果,它分析了项目的要求、目标和环境;提出了几种可供选择的方案;并从技术、经济和法律各方面进行了可行性分析。可作为项目决策的依据。 2.FAR 也可以作为项目建议书、投标书等文件的基础。 可行性分析报告的正文格式如下: 1 引言 本章分为以下几条。 1.1 标识 本条应包含本文档适用的系统和软件的完整标识,(若适用)包括标识号、

  • GB 8567-2006计算机软件文档编制规范.pdf

    GB8567-2006计算机软件文档编制规范

  • 软件研发相关国家标准汇总

    大类 体系 标准 质量 IOS 9000 GBT 19001-2016 质量管理体系 要求 GB_T 19000-2016 质量管理体系 基础和术语 IOS 1400 GBT 24001-2016 环境管理体系 要求及使用指南 IOS/IEC 20000 ISO 20000-1-2018 信息技术 服务管理 服务体系 要求 IOS 2700 ISO 27001-2013 信息安全管理体系 ...

  • 开发常遇到的异常总结

    异常的继承结构: 基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception,具体的RuntimeException继承RuntimeException。 Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。  

  • 20.9.7 项目开发总结报告

    项目开发总结报告 项目总结最后价值的东西是经验、教训的总结。 项目开发总结报告的编制,根据GB/T 8567-2006的规定,项目总结报告应包含以下几个部分的内容: (1) 引言。标识、系统概述、文档概述。 (2) 引用文件。引用文档的编号、标题、修改版本和日期。 (3)实际开发效果。概要性总结:产品、主要功能和性能、基本流程、进度、费用。 (4)开发工作评价。对生产效率的评价、对产品质量的评价。 (5)缺陷与处理。 (6)经验与教...

  • 无法启动此程序,因为计算机中丢失chrome_elf.dll。尝试重新安装该程序以解决此问题

    问题: 无法启动此程序,因为计算机中丢失chrome_elf.dll。尝试重新安装该程序以解决此问题 如下图:       解决: 看下C:\Windows\SysWOW64下没这个文件   没有的话下载chrome_eft.dll          http://www.gezila.com/ruanjian/xitong/100654.html 把chrome_eft....

  • 项目开发文档——项目开发总结报告

    项目开发总结报告 1 引言 1.1 编写目的:阐明编写总结报告的目的并指明读者对象。 1.2 项目背景:说明项目的来源、委托单位、开发单位及主管部门。 1.3 定义:列出报告中所用到的专门术语的定义和缩写词的原意。 1.4参考资料:列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:项目的计划任务书、合同或批文;项目开发计划;需求规格说明书;概要设计说明书;详细设计说明书;用户...

  • 软件工程之项目开发总结报告(GB8567-1988)

    做软件工程需要用到的,希望对大家有帮助!

  • 软件项目开发总结报告

    此报告是一个建议的软件项目开发总结报告格式,。里面的内容是本人项目开发实习自己的一个总结,非常粗糙。

  • 软件项目总结报告.doc

    NULL 博文链接:https://joneand.iteye.com/blog/913957

  • 项目开发总结报告 模板

    项目开发总结报告 1 引言 1.1 编写目的:阐明编写总结报告的目的并指明读者对象。 1.2 项目背景:说明项目的来源、委托单位、开发单位及主管部门。 1.3 定义:列出报告中所用到的专门术语的定义和缩写词的原意。 1.4参考资料:列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:项目的计划任务书、合同或批文;项目开发计划;需求规格说明书;概要设计说明书;详细设计说明书;用

  • 开源软件项目常用版本号标识

    Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。 Beta:也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出。 RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台上就是发行候选版本。RC版不会再加入新的功能了,主要着重于除错。 GA:General Availability,正式发布的版本,在国外都是用

  • 《软件工程导论》课后习题答案

    《软件工程导论》课后习题答案第一章 软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。 (7)软件技术的发展远远满足不了计算机应用的普及与...

  • 《GB T 8567-2006 计算机软件文档编制规范》:提升软件文档质量的必备指南

    《GB T 8567-2006 计算机软件文档编制规范》:提升软件文档质量的必备指南 【下载地址】GBT8567-2006计算机软件文档编制规范分享 本仓库提供了一个重要的资源文件下载,即《GB T 8567-2006 计算机软件文档编制规范》。该规范是中国国家标准,旨在为计算机软件的文档编制提供统一的规范和要求,确保软...

  • 【软件工程】——软工文档(GB8567--88)

    一.简介 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。 软工中主要的六阶段:制定计划,需求分析和定义,软件设计,软件程序编写,软件测试,运行和维护。这也就是软件开发所要经历的一个过程。文档在这六个阶段中起着连线的作用。这些文档记录了开发过程中的开发轨迹,是开发人员工作的依据,也是用

  • 软件工程国家标准文档GB8567-88

    软件工程国家标准文档GB8567-88 软件工程国家标准文档GB8567-88 软件工程国家标准文档GB8567-88

Global site tag (gtag.js) - Google Analytics