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来进行解析了}

HtmlUnit使用相关推荐

  1. html post 图片,如何发送图片作为多部分POST请求的一部分 - Java HtmlUnit

    我正尝试使用Java将验证码提交给decaptcher.com. Decaptcher并没有很好的解释如何使用他们的API,所以我想弄清楚如何使用HTTP POST请求来提交验证码.下面是示例代码,我 ...

  2. 模拟浏览器的神器 - HtmlUnit

    2019独角兽企业重金招聘Python工程师标准>>> 随着Web的发展,RIA越来越多,JavaScript和Complex AJAX Libraries给网络爬虫带来了极大的挑战 ...

  3. 响应时登录html,HtmlUnit:单击不响应时登录HtmlElement

    由于您尚未发布要调用的网址,因此我只能提供一些提示. 即使HtmlUnit在幕后发挥了很多魔力,您也需要对所有Web技术有基本的了解 从代码看来,登录是基于Ajax完成的:这有一些含义:Ajax需要启 ...

  4. java使用htmlunit工具抓取js中加载的数据

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

  5. htmlunit爬虫工具使用--模拟浏览器发送请求,获取JS动态生成的页面内容

    Htmlunit是一款模拟浏览抓取页面内容的java框架,具有js解析引擎(rhino),可以解析页面的js脚本,得到完整的页面内容,特殊适合于这种非完整页面的站点抓取. 下载地址: https:// ...

  6. htmlunit 发http请求

    2019独角兽企业重金招聘Python工程师标准>>> htmlunit 发http请求 博客分类: java public static WebClient createWebCl ...

  7. HtmlUnit爬取页面列表链接

    场景:爬虫网页列表上的链接,用于再次爬虫,主要功能是列表翻页功能. 代码参考: package com;import com.gargoylesoftware.htmlunit.BrowserVers ...

  8. HtmlUnit自动填写表单并提交

    场景:对网页的表单进行自动填写并提交,如登录框,和文章http://blog.csdn.net/fjssharpsword/article/details/51480475类似,不同的是这次butto ...

  9. HtmlUnit动态执行js函数

    功能:动态指定js函数,实际上这个效果不是很有用,这里就做一个记录而已,参考代码如下: package com; import com.gargoylesoftware.htmlunit.Browse ...

  10. HtmlUnit采集页面信息加工并写入excel表

    1.功能:从网页上采集信息加工,如将商品名字重组(Name2FiveWords函数),并写入excel表,涉及对htmlunit元素定位以及点击重定向. 2.参考代码如下: package com;i ...

最新文章

  1. (C++)1008 数组元素循环右移问题
  2. IE浏览器中iframe背景BODY透明
  3. elasticsearch-5.0.0初见
  4. Linux下cat命令各种用法
  5. 计算机hub体系部件,原来如此!USB Hub接口为啥都是4个7个或10个?
  6. python时间序列数据分析统计服_python数据分析之:时间序列二
  7. 1001 害死人不偿命的(3n+1)猜想 (15分)
  8. LeetCode 211. 添加与搜索单词 - 数据结构设计(Trie树)
  9. 你真的了解 “开源” 么?请查收【保姆级】开源百科
  10. 【opencv学习】【hough圆检测】
  11. zookeeper 负载均衡 概念笔记
  12. 如今越来越多的人开始讨厌全键盘输入法,对九宫格情有独钟,这是为什么呢?
  13. 漫谈 MinIO 集群扩容方法
  14. postman使用教程(1)--发送post请求
  15. 网页倒计时跳转JS代码
  16. 回望曾经的自己!对话心灵的治愈系漫画
  17. 搭建基于 Vim 的 C++和 Python 开发环境[持续更新]
  18. 美颜滤镜sdk是什么?
  19. 面向工业智能制造的组态系统设计思路与实现
  20. 浏览器上享受《速度与激情》,开发者花 16 个月用 JavaScript 造了一款驾驶游戏,水里也能开车!

热门文章

  1. idea搭建Spark开发环境
  2. 舌尖风格的视频配音应该如何制作?
  3. 虚拟机可以ping通主机,主机无法ping通虚拟机的解决方法
  4. 云海解析计费系统v4.3带平台接口全开源(2023版)
  5. Foxmail 无法收取Exchange 2003邮件
  6. mysql查询查询条件越多速度越快_MySQL技术专区性能优化速记 李博/Alex
  7. java面试基础问题答不上来怎么办,快来看鸭~
  8. 张一鸣“合成大西瓜”
  9. 01-Redis缓存入门
  10. DSP 程序远程升级 / Bootloader设计指南(三)—— CMD文件与DSP存储空间