htmlunit官网简易教程(翻译)
2015-06-03 10:50
381 查看
http://www.cnblogs.com/cation/p/3933408.html
1 环境搭建:
1)下载
从链接:http://sourceforge.net/projects/htmlunit/files/htmlunit/
下载最新的bin文件
2)关于bin文件
里面主要包含两部分,一是lib目录下的.jar文件,还有就是apidocs目录下的帮助文件(即API说明文件,打开index-all.html,是以网页形式提供)
3)配置java的CLASSPATH(纯手工方法)
将lib目录下的所有.jar文件复制到任意目录(如:c:\htmlunit\lib\)
然后右击我的电脑->属性->高级->环境变量->系统变量 中,对CLASSPATH进行编辑,如果没有就新建一个(如果运行java或编译时有错误,就在)
务必将所有.jar文件的详细地址添加到CLASSPATH中,而不是用“c:\htmlunit\lib\”来代替,如.;c:\htmlunit\lib\1.jar;c:\htmlunit\lib\2.jar; 才是正确的写法
务必每一个都写清楚,需要注意最前面有个点".",最后面有个";"
2 解释和说明:
1).jar其实就是编译好的.class文件集,可以使用rar解压软件打开。所以.jar本质是一个目录
2)官网的教程有些地方写的很奇怪和不直观,所以我做了些调整,主要是使输出结果更加直观
3)里面每一个函数的具体使用方法在APIDOCS中已经有详细的说明了,我这里就不重复了
3 开始翻译教程
3.1 获取页面的TITLE、XML代码、文本
按 Ctrl+C 复制代码import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.html.HtmlDivision;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.*;
import com.gargoylesoftware.htmlunit.WebClientOptions;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlBody;
import java.util.List;
public class helloHtmlUnit{
public static void main(String[] args) throws Exception{
String str;
//创建一个webclient
WebClient webClient = new WebClient();
//htmlunit 对css和javascript的支持不好,所以请关闭之
webClient.getOptions().setJavaScriptEnabled(false);
webClient.getOptions().setCssEnabled(false);
//获取页面
HtmlPage page = webClient.getPage("http://www.baidu.com/");
//获取页面的TITLE
str = page.getTitleText();
System.out.println(str);
//获取页面的XML代码
str = page.asXml();
System.out.println(str);
//获取页面的文本
str = page.asText();
System.out.println(str);
//关闭webclient
webClient.closeAllWindows();
}
}
3.2 使用不同版本的浏览器打开
3.3 找到页面中特定的元素
3.4 元素检索
3.5 提交搜索
1 环境搭建:
1)下载
从链接:http://sourceforge.net/projects/htmlunit/files/htmlunit/
下载最新的bin文件
2)关于bin文件
里面主要包含两部分,一是lib目录下的.jar文件,还有就是apidocs目录下的帮助文件(即API说明文件,打开index-all.html,是以网页形式提供)
3)配置java的CLASSPATH(纯手工方法)
将lib目录下的所有.jar文件复制到任意目录(如:c:\htmlunit\lib\)
然后右击我的电脑->属性->高级->环境变量->系统变量 中,对CLASSPATH进行编辑,如果没有就新建一个(如果运行java或编译时有错误,就在)
务必将所有.jar文件的详细地址添加到CLASSPATH中,而不是用“c:\htmlunit\lib\”来代替,如.;c:\htmlunit\lib\1.jar;c:\htmlunit\lib\2.jar; 才是正确的写法
务必每一个都写清楚,需要注意最前面有个点".",最后面有个";"
2 解释和说明:
1).jar其实就是编译好的.class文件集,可以使用rar解压软件打开。所以.jar本质是一个目录
2)官网的教程有些地方写的很奇怪和不直观,所以我做了些调整,主要是使输出结果更加直观
3)里面每一个函数的具体使用方法在APIDOCS中已经有详细的说明了,我这里就不重复了
3 开始翻译教程
3.1 获取页面的TITLE、XML代码、文本
按 Ctrl+C 复制代码import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.html.HtmlDivision;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.*;
import com.gargoylesoftware.htmlunit.WebClientOptions;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlBody;
import java.util.List;
public class helloHtmlUnit{
public static void main(String[] args) throws Exception{
String str;
//创建一个webclient
WebClient webClient = new WebClient();
//htmlunit 对css和javascript的支持不好,所以请关闭之
webClient.getOptions().setJavaScriptEnabled(false);
webClient.getOptions().setCssEnabled(false);
//获取页面
HtmlPage page = webClient.getPage("http://www.baidu.com/");
//获取页面的TITLE
str = page.getTitleText();
System.out.println(str);
//获取页面的XML代码
str = page.asXml();
System.out.println(str);
//获取页面的文本
str = page.asText();
System.out.println(str);
//关闭webclient
webClient.closeAllWindows();
}
}
3.2 使用不同版本的浏览器打开
import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.html.HtmlDivision; import com.gargoylesoftware.htmlunit.html.HtmlAnchor; import com.gargoylesoftware.htmlunit.*; import com.gargoylesoftware.htmlunit.WebClientOptions; import com.gargoylesoftware.htmlunit.html.HtmlInput; import com.gargoylesoftware.htmlunit.html.HtmlBody; import java.util.List; public class helloHtmlUnit{ public static void main(String[] args) throws Exception{ String str; //使用FireFox读取网页 WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24); //htmlunit 对css和javascript的支持不好,所以请关闭之 webClient.getOptions().setJavaScriptEnabled(false); webClient.getOptions().setCssEnabled(false); HtmlPage page = webClient.getPage("http://www.baidu.com/"); str = page.getTitleText(); System.out.println(str); //关闭webclient webClient.closeAllWindows(); } }
3.3 找到页面中特定的元素
public class helloHtmlUnit{ public static void main(String[] args) throws Exception{ //创建webclient WebClient webClient = new WebClient(BrowserVersion.CHROME); //htmlunit 对css和javascript的支持不好,所以请关闭之 webClient.getOptions().setJavaScriptEnabled(false); webClient.getOptions().setCssEnabled(false); HtmlPage page = (HtmlPage)webClient.getPage("http://www.baidu.com/"); //通过id获得"百度一下"按钮 HtmlInput btn = (HtmlInput)page.getHtmlElementById("su"); System.out.println(btn.getDefaultValue()); //关闭webclient webClient.closeAllWindows(); } }
3.4 元素检索
public class helloHtmlUnit{ public static void main(String[] args) throws Exception{ //创建webclient WebClient webClient = new WebClient(BrowserVersion.CHROME); //htmlunit 对css和javascript的支持不好,所以请关闭之 webClient.getOptions().setJavaScriptEnabled(false); webClient.getOptions().setCssEnabled(false); HtmlPage page = (HtmlPage)webClient.getPage("http://www.baidu.com/"); //查找所有div List<?> hbList = page.getByXPath("//div"); HtmlDivision hb = (HtmlDivision)hbList.get(0); System.out.println(hb.toString()); //查找并获取特定input List<?> inputList = page.getByXPath("//input[@id='su']"); HtmlInput input = (HtmlInput)inputList.get(0); System.out.println(input.toString()); //关闭webclient webClient.closeAllWindows(); } }
3.5 提交搜索
public class helloHtmlUnit{ public static void main(String[] args) throws Exception{ //创建webclient WebClient webClient = new WebClient(BrowserVersion.CHROME); //htmlunit 对css和javascript的支持不好,所以请关闭之 webClient.getOptions().setJavaScriptEnabled(false); webClient.getOptions().setCssEnabled(false); HtmlPage page = (HtmlPage)webClient.getPage("http://www.baidu.com/"); //获取搜索输入框并提交搜索内容 HtmlInput input = (HtmlInput)page.getHtmlElementById("kw"); System.out.println(input.toString()); input.setValueAttribute("雅蠛蝶"); System.out.println(input.toString()); //获取搜索按钮并点击 HtmlInput btn = (HtmlInput)page.getHtmlElementById("su"); HtmlPage page2 = btn.click(); //输出新页面的文本 System.out.println(page2.asText()); } }
相关文章推荐
- HTML测试用
- HackerRank - "Detect HTML Attributes"
- HTML页面中,设置input获得焦点
- html页面元素加载顺序
- 清理Word生成HTML的冗余;清理与清除HTML标签
- HTML学习笔记之一(input文件选择框的封装)
- 001_01HTML常用语法
- Atom编辑器折腾记_(11)编辑器实时预览HTML页面(插件:Atom HTML Preview)
- Atom编辑器折腾记_(11)编辑器实时预览HTML页面(插件:Atom HTML Preview)
- 浏览器加载和渲染html的顺序
- MVC-命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Html”(是否缺少程序集引用?)
- html input文本框 输入框提示(hint)内容的实现
- 去掉html表格之table间的空隙
- HTML<!DOCTYPE> 声明的作用
- html基础
- HTML img标签之onAbort、onError、onLoad事件与问题
- 在html中使用特殊字体
- html的文档要utf-8不能是unicode
- MVC中HtmlHelper用法大全参考
- HTML转义字符