HtmlUnit的使用
HtmlUnit的使用
简介
HtmlUnit是一个无界面浏览器Java程序。它为HTML文档建模,提供了调用页面、填写表单、单击链接等操作的API。就跟你在浏览器里做的操作一样。
HtmlUnit不错的JavaScript支持(不断改进),甚至可以使用相当复杂的AJAX库,根据配置的不同模拟Chrome、Firefox或Internet Explorer等浏览器。
HtmlUnit通常用于测试或从web站点检索信息。
HtmlUnit使用场景
- httpClient的局限性
我们一般可以使用apache的HttpClient组件进行HTML页面信息的获取,HttpClient实现的http请求返回的响应一般是纯文本的document页面,即最原始的html页面。
对于一个静态的html页面来说,使用httpClient足够将我们所需要的信息爬取出来了。但是对于现在越来越多的动态网页来说,更多的数据是通过异步JS代码获取并渲染到的,最开始的html页面是不包含这部分数据的。
通过HtmlUnit库,加载一个完整的Html页面,然后就可以将其转换成我们常用的字串格式,用其他工具如Jsoup来获取其中的元素了。当然也可以直接在HtmlUnit提供的对象中获取网页元素,甚至是操作如按钮、表单等控件。除了不能像可见浏览器一样用鼠标键盘浏览网页之外,我们可以用HtmlUnit来模拟操作其他的一切操作,像登录网站,撰写博客等等都是可以完成的。当然网页内容爬取是最简单的一个应用了。
HtmlUnit的使用相关推荐
- html post 图片,如何发送图片作为多部分POST请求的一部分 - Java HtmlUnit
我正尝试使用Java将验证码提交给decaptcher.com. Decaptcher并没有很好的解释如何使用他们的API,所以我想弄清楚如何使用HTTP POST请求来提交验证码.下面是示例代码,我 ...
- 模拟浏览器的神器 - HtmlUnit
2019独角兽企业重金招聘Python工程师标准>>> 随着Web的发展,RIA越来越多,JavaScript和Complex AJAX Libraries给网络爬虫带来了极大的挑战 ...
- 响应时登录html,HtmlUnit:单击不响应时登录HtmlElement
由于您尚未发布要调用的网址,因此我只能提供一些提示. 即使HtmlUnit在幕后发挥了很多魔力,您也需要对所有Web技术有基本的了解 从代码看来,登录是基于Ajax完成的:这有一些含义:Ajax需要启 ...
- java使用htmlunit工具抓取js中加载的数据
htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容.项目可以模拟浏览器运行,被誉为java浏览器的开源实现.这个没有界面的浏览器,运行速度 ...
- htmlunit爬虫工具使用--模拟浏览器发送请求,获取JS动态生成的页面内容
Htmlunit是一款模拟浏览抓取页面内容的java框架,具有js解析引擎(rhino),可以解析页面的js脚本,得到完整的页面内容,特殊适合于这种非完整页面的站点抓取. 下载地址: https:// ...
- htmlunit 发http请求
2019独角兽企业重金招聘Python工程师标准>>> htmlunit 发http请求 博客分类: java public static WebClient createWebCl ...
- HtmlUnit爬取页面列表链接
场景:爬虫网页列表上的链接,用于再次爬虫,主要功能是列表翻页功能. 代码参考: package com;import com.gargoylesoftware.htmlunit.BrowserVers ...
- HtmlUnit自动填写表单并提交
场景:对网页的表单进行自动填写并提交,如登录框,和文章http://blog.csdn.net/fjssharpsword/article/details/51480475类似,不同的是这次butto ...
- HtmlUnit动态执行js函数
功能:动态指定js函数,实际上这个效果不是很有用,这里就做一个记录而已,参考代码如下: package com; import com.gargoylesoftware.htmlunit.Browse ...
- HtmlUnit采集页面信息加工并写入excel表
1.功能:从网页上采集信息加工,如将商品名字重组(Name2FiveWords函数),并写入excel表,涉及对htmlunit元素定位以及点击重定向. 2.参考代码如下: package com;i ...
最新文章
- linux第七章《档案与目录管理》重点回顾
- 如何设置鼠标移开后css,如何设置鼠标离开时由hover设置的样式不变?
- libgdx 学习笔记一 开发环境搭建
- 第四十四节,subprocess系统命令模块
- OpenCV无缝克隆不带GUI的模块的实例(附完整代码)
- oracle exp cluster n,oracle cluster verfication utility failed
- anacoda2如何连接使用mysql_Anaconda 安装 Python 库(MySQLdb)的方法-(转)
- 如何解决anaconda出现CondaHTTPError问题
- java 设计模式 示例_Java示例中的装饰器设计模式
- scrapy 中爬取时被重定向_Scrapy详解之scrapy shell
- cudaMemcpy的性能问题
- Swift - 使用下划线(_)来分隔数值中的数字
- vijos-伊甸园日历游戏
- 电视dns服务器修复,电信电视dns遭到劫持的解决方法分享
- Typora Beta版过期解决
- IDEA快速换行快捷键
- 【老生谈算法】matlab实现RLS算法自适应均衡器——RLS算法
- java开发一个简单的通讯录
- 【Multisim仿真】二极管加正向和反向电压测量实验
- 浮点类型的比较,精度控制(float.h的利用 ,DBL_EPSILON)
热门文章
- mysql bitmap实现_bitmap原理和应用
- Altium Desinger - 生成Gerber文件
- 【VideoJs】初识videojs video.js 视频播放器的基本使用 videojs基础用法 videojs视频播放器 vue3中使用videojs
- linux 使用svn下载svn仓库内容到本地
- Solving environment: failed with initial frozen solve. Retrying with flexible solve.
- linux8怎么添加中文输入法,为CentOS8安装中文输入法
- Rust 11:错误处理(Option<T>、Result<T,E>、panic、catch_unwind)
- 对口高考计算机应用真题,对口高考计算机应用基础总复习试题1
- 华为OD机试 - 简易压缩算法(Python) | 机试题算法思路 【2023】
- java中带参数匿名内部类_Java中的匿名内部类