java测试模拟网页点击,httpunit爬虫模拟搜索详解与实战
一、WEB测试工具介绍
httpunit是一个可以模拟浏览器的集成工具,它可以让你在不需要浏览器的情况下模拟浏览器的浏览行为,该工具是junit测试工具下面的一个子框架,主要用来做web端测试使用,它的诞生主要是解决junit框架没法对远程web内容进行测试的问题。
httpunit的出现解决了我们能够绕过浏览器直接从程序中访问我们的站点,该工具使用Java语言编写完成,能够很好的跟Java程序相互协作,丰富的API能够能够轻易地与Java程序和服务器之间进行简易的交互,服务端返回的结果可以当作DOM元素进行处理。
目前httpunit版本已经更新到1.7,下载地址如下:
二、网络爬虫功能介绍
由于httpunit工具能够模拟浏览器的行为,并且将结果当成Dom元素进行解析,还能够模拟HTTP请求认证、表单提交、cookie登录页面重定向等,所以该技术还通常用于网络爬虫的实现,动态抓取网页元素,动态解析页面标签。
三、httpunit与jsoup爬虫功能比较
jsoup最大的优势就是它可以快速的爬取静态页面儿,并且能够将静态页面里面的标签迅速识别,像jquery一样快速的解析页面标签内容。
jsoup碰到动态页面有一定的弊端,因为动态页面的内容是通过浏览器浏览ajax动态访问后台服务器,然后返回内容之后使用js脚本解析内容到页面上,jsoup无法做到解析动态内容。
httpunit刚好补缺了jsoup的缺点,他能够动态模拟浏览器访问url,然后动态的获取url上的内容进行解析,从而完成动态爬虫的抓取功能。
四、爬虫模拟点击按钮代码实战
了解httpunit的api
大家都知道Java语言中应用一个工具或者工具类的时候,首先需要创建工具类的对象,然后调用对象的方法完成某些业务,而httpunit也不例外,下面就是对象创建的代码:
final WebClient webClient=new WebClient();
爬虫做爬取功能需要传入某个页面的url,然后获得该url的page对象,代码如下:
final HtmlPage page=webClient.getPage(“http://www.itjcw123.cn”);
得到代表页面的page对象后可以解析页面元素,既可以让页面以txt文本方式展示,也可以xml文件的方式展示,代码如下:
System.out.println(page.asXml());
System.out.println(page.asText());
完成页面内容解析之后别忘了将模拟工具对象销毁,api代码如下:
webClient.closeAllWindows();
爬虫模拟百度搜索框点击按钮实战
步骤一:创建webClient浏览器模拟对象,调用getPage方法方法百度首页url地址,得到代表首页的htmlpage对象,由于我们模拟的是静态页面,故需要设置关闭js解析,爬虫也不需要样式,因此也需要关闭css样式设置,具体代码见下图所示:
步骤二:既然我们是用爬虫模拟百度搜索框点击搜索,所以我们要首先获取到百度首页的form表单,代码如下所示:
final HtmlForm form = htmlpage.getFormByName(“f”);
拿到表单ID之后,然后再找到百度一下这个蓝色点击按钮的ID,代码如下:
final HtmlSubmitInput button = form.getInputByValue(“百度一下”);
最后,拿到百度搜索框的ID,以便于后面的模拟点击,代码如下:
final HtmlTextInput textField = form.getInputByName(“q1”);
步骤三:前期的准备工作都已经做完,并且该获取的ID也已经获取完成,接下来我们就可以模拟人工在搜索框输入内容。然后点击按钮完成搜索,具体代码见下图所示:
获取到的搜索结果页的数据是以xml格式的数据展现,XML这个文件格式比较规整,标签儿较完整,解析内容时多以解析某个标签中的内容为主,所以xml格式相比于txt更加优雅。
最后解析数据时,我们更建议使用jsoup这个工具,jsoup解析静态页面的标签儿更加的方便和简洁,使用起来更加顺手。
java测试模拟网页点击,httpunit爬虫模拟搜索详解与实战相关推荐
- php如何模拟网页点击按钮,python模拟点击网页按钮如何实现 python模拟点击网页按钮实现方法...
python模拟点击网页按钮如何实现 python模拟点击网页按钮实现方法 本篇文章小编给大家分享一下python模拟点击网页按钮实现方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们 ...
- python模拟网页点击_python怎么模拟点击网页按钮
python怎么模拟点击网页按钮 前提环境: Python3 和 Visual Studio Code安装完毕 . 安装selenium : 在终端输入: pip install selenium, ...
- java 模拟点击按钮_HttpUnit模拟按钮点击以及爬虫实现(模拟百度搜索)
HttpUnit模拟按钮点击以及爬虫实现(模拟百度搜索) HttpUnit 本质上相当于一个后台的透明的浏览器引擎,使用java中的HttpUnit可以实现模拟点击按钮,抓取网页元素,实现动态爬虫,之 ...
- 模拟网页点击爬虫交管12123违章数据!违章信息及时处理!
本次介绍怎么以模拟点击方式进入交管12123爬取车辆违章数据,本文直接讲解过程,使用的命令解释见上一篇文章.本文同<Python教程-模拟网页点击爬虫定位系统>同样为企业中实际的爬虫案例, ...
- node.js如何模拟网页点击?
可以使用 Node.js 和一个第三方库,如 Puppeteer,来模拟网页点击.Puppeteer 是一个 Node.js 库,它提供了一个高级 API,用于控制 Chrome 或 Chromium ...
- Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析
Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才 ...
- fofa自动化爬虫脚本更新+详解
fofa自动化爬虫脚本更新+详解 起因 最近要用到fofa爬虫,为什么要用爬虫不用api,问就是穷,想起来之前写过一个相关的脚本:Fofa-python-脚本,是很久以前写的了,之前写的时候有点问题, ...
- Python爬虫JS解密详解,学会直接破解80%的网站(一)!!!
文章目录 1.网页查看 2.有道翻译简单实现源码 3.JS解密(详解) 4.python实现JS解密后的完整代码 4.1.实现效果 5.JS解密后完整代码升级版 5.1.实现效果 CSDN独家福利降临 ...
- python爬虫入门实例-Python爬虫天气预报实例详解(小白入门)
本文研究的主要是Python爬虫天气预报的相关内容,具体介绍如下. 要求是把你所在城市过去一年的历史数据爬出来. 分析网站 我们可以看到,我们需要的天气数据都是放在图表上的,在切换月份的时候,发现只有 ...
最新文章
- Redis6安装配置集群cluster以及集群宕机注意事项
- ewebeditor后台拿shell
- 合并两个有序数组为一个新的有序数组
- SQLserver2008高级查询语句应用实例
- OCJP认证考试复习课-张晨光-专题视频课程
- 15 个最新的 CSS3 教程
- 亚马逊S3文件存储的可视化
- dd var tmp .oracle,Oracle 11gR2 RAC ohasd failed to start 解决方法
- VScode我的setting.json设置,和搜狗输入法配置
- Excel VBA 入门(零)
- Django中的 返回json对象的方式
- 数据库系统概论第五版(笔记+习题答案)(全)
- 计算机应用基础信息素养,计算机应用基础:信息素养+Office 2013办公自动化
- 大学计算机学五笔吗,新手学五笔打字
- 【Java教程】Java 抽象工厂模式
- matlab插值拟合
- [转]PT与PX区别
- mac上投屏android_简单实用的手机投屏Mac电脑
- CSS 文字背景水印
- 千图网爬图片(BeautifulSoup)
热门文章
- 十年京东,十年技术发展—畅读《京东技术解密》
- Golang二进制反汇编
- 最小的语言符号是A词B语素C音素D义素,自考汉语言文学专业:2008年1语言学概论历年真题00541...
- 手机来电通核心模块——归属地数据库设计(Winsym原创) 1
- 用js自定义视频播放器
- Tryhackme-Threat and Vulnerability Management
- mysql双机备份最简单_MySQL的本地备份和双机相互备份脚本
- 极品飞车无限狂飚连不上服务器,极品飞车无限狂飙电脑版
- android 8 ril,Android RIL源码研究笔记 の ril (一)
- 怎么使用 Buildroot 构建根文件系统