HtmlUnit 的用法
最编程
2024-06-23 15:53:08
...
htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。是一个没有界面的浏览器,运行速度迅速。是junit的扩展之一,它采用的是Rhinojs引擎。模拟js运行。常规意义上,该项目可以用来进行页面的测试工作,实现网页自动化测试,(包括JS)但是一般来说,在小型爬虫项目中,这种框架十分常用,可以有效的分析出 dom的标签,并且有效的运行页面上的js以便得到一些需要执行JS才能得到的值。
在一般爬虫应用中 仅仅用Httpclient+jsoup是不够的,只能去获取静态的页面数据,这里就可以使用htmlunit,内嵌js浏览器,模拟Js运行,把结果执行出来
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.29</version>
</dependency>
使用案例:使用htmlunit操作表单控件和提交(执行百度搜索)
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 = webClient.getPage("http://www.baidu.com/");
//获取搜索输入框并提交搜索内容
HtmlInput input = page.getHtmlElementById("kw");
System.out.println(input.toString());
//输入需要搜索的关键词
input.setValueAttribute("Java");
System.out.println(input.toString());
//获取搜索按钮并点击
HtmlInput btn = page.getHtmlElementById("su");
HtmlPage newPage = btn.click();
//输出新页面的文本
System.out.println(newPage.asText());
//当我们通过HtmlPage 获取到HTML文本后就可以通过Jsoup来进行解析了
}
推荐阅读
-
了解YUV和RGB的不同之处及其对YUV444、YUV422、YUV411和YUV420的介绍
-
踞觑yuv422、yuv420和yuv444间的差异
-
每周总结20130814——Android NDK环境的搭建和使用,YUV420SP格式图像的处理
-
二、代码实现YUV420图像的水平拼接
-
重新表达该标题:编码格式YUV420的解释
-
转换NV12为YUV420格式的百转工具
-
研究针对 YUV420 颜色空间的深度图像压缩
-
解密Android Bitmap转I420的难题,附图文详解YUV420数据格式
-
互相转换的BGRA、RGBA和YUV420
-
如何实现neon优化的yuv420转rgb24汇编代码,iOS/Android可用的具体操作步骤