当前位置:首页 > java知识学习_java技术文章 > 正文

httpunit爬虫模拟搜索详解与实战

浏览2553+

爬虫

一、WEB测试工具介绍

httpunit是一个可以模拟浏览器的集成工具,它可以让你在不需要浏览器的情况下模拟浏览器的浏览行为,该工具是junit测试工具下面的一个子框架,主要用来做web端测试使用,它的诞生主要是解决junit框架没法对远程web内容进行测试的问题。

httpunit的出现解决了我们能够绕过浏览器直接从程序中访问我们的站点,该工具使用Java语言编写完成,能够很好的跟Java程序相互协作,丰富的API能够能够轻易地与Java程序和服务器之间进行简易的交互,服务端返回的结果可以当作DOM元素进行处理。

目前httpunit版本已经更新到1.7,下载地址如下:

https://sourceforge.net/projects/httpunit/

二、网络爬虫功能介绍

由于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样式设置,具体代码见下图所示:

webClient对象创建与配置信息设置代码一览

步骤二:既然我们是用爬虫模拟百度搜索框点击搜索,所以我们要首先获取到百度首页的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解析静态页面的标签儿更加的方便和简洁,使用起来更加顺手。

 

相关文章推荐

httpUnit介绍及使用示例

Java爬虫实践:Jsoup+HttpUnit爬取今日头条、网易、搜狐、凤凰新闻

HttpUnit模拟按钮点击以及爬虫实现(模拟百度搜索)

httpunit使用演示样例

HttpUnit – 享受测试带来的一切

使用JSOUP + HttpUnit爬虫

Java爬虫入门简介(三) —— Jsoup解析HTML页面

HttpClient详细使用示例

jsoup开发指南,jsoup中文使用手册,jsoup中文文档

百度云网盘视频教程分享

责任声明:文章信息由IT教程屋小编精心整理总结编排而成,倾注了心血和汗水,转载时请遵循行业规范务必注明文章作者、来源及本页链接,谢谢合作!
本篇文章标题:httpunit爬虫模拟搜索详解与实战
本篇文章url地址:http://www.itjcw123.cn/2817.html