HtmlUnit介绍

htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。是一个没有界面的浏览器,运行速度迅速。

入门案例

pom.xml加入依赖

    <dependency><groupId>net.sourceforge.htmlunit</groupId><artifactId>htmlunit</artifactId><version>2.23</version></dependency>

获取页面内容

        /*** 获取页面内容*/public class HtmlUnitDemo03 {public static void main(String[] args) {//实例化web客户端WebClient webClient = new WebClient(BrowserVersion.FIREFOX_45,"124.206.107.125",3128);//使用代理IPtry {//解析获取页面HtmlPage page = webClient.getPage("http://www.java1234.com");HtmlElement div = page.getHtmlElementById("navMenu");System.out.println(div.asXml());System.out.println("---------------");//获取a标签DomNodeList<DomElement> dnList = page.getElementsByTagName("a");for (int i = 0; i < dnList.getLength(); i++) {DomElement element = dnList.get(i);System.out.println(element.asXml());System.out.println(element.asText());}System.out.println("------------------");List<HtmlListItem> itemList = (List<HtmlListItem>) page.getByXPath("//div[@id='navMenu']/ul/li");System.out.println(itemList.get(0).asXml());} catch (FailingHttpStatusCodeException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (ElementNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {//释放资源webClient.close();}}}

取消css,js支持

        /*** 取消css,js支持*/public class HtmlUnitDemo04 {public static void main(String[] args) {//实例化web客户端WebClient webClient = new WebClient(BrowserVersion.FIREFOX_45,"124.206.107.125",3128);//使用代理IP//取消css支持webClient.getOptions().setCssEnabled(false);//取消js支持webClient.getOptions().setJavaScriptEnabled(false);try {//解析获取页面HtmlPage page = webClient.getPage("http://www.java1234.com");HtmlElement div = page.getHtmlElementById("navMenu");System.out.println(div.asXml());System.out.println("---------------");//获取a标签DomNodeList<DomElement> dnList = page.getElementsByTagName("a");for (int i = 0; i < dnList.getLength(); i++) {DomElement element = dnList.get(i);System.out.println(element.asXml());}System.out.println("------------------");List<HtmlListItem> itemList = (List<HtmlListItem>) page.getByXPath("//div[@id='navMenu']/ul/li");System.out.println(itemList.get(0).asXml());} catch (FailingHttpStatusCodeException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (ElementNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {//释放资源webClient.close();}}}

模拟表单搜索

        /*** 模拟表单搜索*/public class HtmlUnitDemo05 {public static void main(String[] args) {//实例化web客户端WebClient webClient = new WebClient(BrowserVersion.FIREFOX_45,"124.206.107.125",3128);//使用代理IPtry {//解析获取页面HtmlPage page = webClient.getPage("http://blog.java1234.com/index.html");//获取搜索表单HtmlForm form = page.getFormByName("myform");//获取查询文本框HtmlTextInput textInput = form.getInputByName("q");//获取提交按钮HtmlSubmitInput submitInput = form.getInputByName("submitButton");//输入文本框textInput.setValueAttribute("java");//模拟提交(点击)HtmlPage resultPage = submitInput.click();System.out.println(resultPage.asXml());} catch (FailingHttpStatusCodeException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (ElementNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {//释放资源webClient.close();}}}

获取ajax加载的内容

        /*** 获取ajax加载的内容*/public class HtmlUnitDemo06 {public static void main(String[] args) {//实例化web客户端WebClient webClient = new WebClient(BrowserVersion.FIREFOX_45);//使用代理IPtry {//解析获取页面HtmlPage page = webClient.getPage("https://pan.baidu.com/share/home?uk=305605848#category/type=0");//等待htmlunit执行jsThread.sleep(10000);System.out.println("网页html:"+page.asXml());} catch (FailingHttpStatusCodeException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (ElementNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();} finally {//释放资源webClient.close();}}}

HtmlUnit入门相关推荐

  1. java模拟浏览器htmlunit,Java版本的浏览器HtmlUnit入门示例

    HtmlUnit是Java版本的浏览器,没有界面但是可以模拟任何浏览器操作. 下面示例访问htmlunit的官网,并打印网页的标题 import com.gargoylesoftware.htmlun ...

  2. HtmlUnit入门教程

    作者:吴香礼 Email:wxl901018@163.com QQ:1060394242 本文禁止用于商业用途 1.     简介 htmlunit是一款开源的java页面分析工具,读取页面后,可以有 ...

  3. 【转】HtmlUnit入门教程

    转载出处:http://blog.csdn.net/wxl901018/article/details/44133873 1. 简介 htmlunit是一款开源的Java页面分析工具,读取页面后,可以 ...

  4. HtmlUnit的入门教程整理

    通过对现有的一些例子的整理,我得到了如下的一些使用HtmlUnit的基本过程(Ajax还在学习中,故没有加入进去) 第一步 初始化webClient WebClient webClient = new ...

  5. HtmlUnit(Java) - 快速入门学习 - 无界面浏览器

    文章目录 1. 概述 2. 注意 2.0 js解析问题 2.1 关闭HtmlUnit日志 3. 使用 3.1 抓取IT之家周榜内容 - 单页面 3.2 抓取IT之家周榜第九篇文章的内容 - 双页面 3 ...

  6. 微信二维码支付快速入门

    目录 一.二维码生成插件qrious 二.HttpClient 三.微信扫码支付 1.申请步骤 2.开发文档 四.入门Demo 1.工程搭建 2.myStudy-pay-interface 3.myS ...

  7. Android学习笔记---HttpClient入门,使用方法,及简介

    HttpClient入门 发华 金, 软件工程师,IBM CSDL, EMC 金发华是一名工作在 IBM CSDL 的软件工程师.他喜欢钻研各种新的技术,在 Java 网络开发和 Web 开发方面颇有 ...

  8. HttpClient和HtmlUnit的比较总结以及使用技巧(一)

    大家在做爬虫.网页采集.通过网页自动写入数据时基本上都接触过这两个组件(权且称之为组件吧),网上入门资料已经很多了,我想从实际的应用角度谈谈我对于这两个组件的看法,并记录在博客中,以便日后翻阅,欢迎大 ...

  9. 【转】对于HttpClient和HtmlUnit的理解

    原文地址:http://www.haohaoblog.com/?p=1327&utm_source=tuicool 做Java编程的人其实,很多不懂SEO,也不知道如何让百度收录等等,当然,对 ...

最新文章

  1. Python3中的成员保护和访问限制
  2. matlab 汽车 流场,matlab画流场图
  3. 134安装教程_PS教程连载第135课:PS第三方插件安装方法
  4. 移动端布局规范-固定页头页尾-中间随高度滑动
  5. 华为内部面试题库---(19)
  6. Android的矩阵(一):ColorMatrix
  7. VS2010不能断点/下断的问题
  8. mysql支持arm64架构吗_arm64(aarch64)下使用mysql
  9. java堆内存和堆外内存_Java堆空间,本机堆和内存问题
  10. Spring Profile模式示例
  11. 前端学习(792):返回索引号
  12. #窗体整人小程序_Excel VBA和文件夹-1.8通过对话框灵活选定文件的小技巧
  13. Atitit USRqc62204 证书管理器标准化规范
  14. 机器人编程和python的区别_乐高机器人编程和计算机编程的区别
  15. 计算机操作系统知识点总结
  16. crr树不同步数期权定价 matlab,CRR二叉树模型及例题
  17. 中国天气网天气城市ID
  18. 清洁机器人--屏幕显示LCD方案接口说明概述
  19. index函数python查询所有_index函数python查询所有_Python List index()方法
  20. python喜马拉雅_Python爬虫实战案例:取喜马拉雅音频数据详解!

热门文章

  1. 工具audit2allow自动生成Selinux策略语句
  2. 【Spark SQL】Spark SQL开发
  3. 《CSS世界》前三章小本本
  4. QT5 使用163邮箱发送邮件
  5. 使用Logistic回归估计马疝病的死亡率
  6. gif图片显示在flash之上(即覆盖时)被flash遮住的解决办法
  7. 《计算机视觉》集大网课学习笔记【4】
  8. 超级计算机上运行游戏,《绝地求生:大逃杀》在50亿美元的超级计算机上运行异常,谁之过?...
  9. 用u盘刻录装服务器系统盘,win7电脑如何刻录系统盘,win7电脑刻录系统盘操作方法...
  10. 地震勘探基础(五)之地震资料数字处理