HttpUnit 简介

HttpUnit 本质上相当于一个后台的透明的浏览器引擎,使用java中的HttpUnit可以实现模拟点击按钮,抓取网页元素,实现动态爬虫,之前一直使用jsoup进行爬虫,不过这次爬取一个生物论坛时候,需要动态处理,发现了httpUnit这个好的框架。


HttpUnit demo


1.几行代码实现获取网页源代码。

final WebClient webClient=new WebClient();
final HtmlPage page=webClient.getPage("http://www.baidu.com");
System.out.println(page.asText());  //asText()是以文本格式显示
System.out.println(page.asXml());   //asXml()是以xml格式显示
webClient.closeAllWindows();

2.模拟文本框与模拟按钮提交,下面我们模拟实现模拟百度搜索关键字。

// 得到浏览器对象,直接New一个就能得到,现在就好比说你得到了一个浏览器了  WebClient webclient = new WebClient();  // 这里是配置一下不加载css和javaScript,因为httpunit对javascript兼容性不太好webclient.getOptions().setCssEnabled(false);  webclient.getOptions().setJavaScriptEnabled(false);  // 做的第一件事,去拿到这个网页,只需要调用getPage这个方法即可  HtmlPage htmlpage = webclient.getPage("http://baidu.com");  // 根据名字得到一个表单,查看上面这个网页的源代码可以发现表单的名字叫“f”  final HtmlForm form = htmlpage.getFormByName("f");  // 同样道理,获取”百度一下“这个按钮  final HtmlSubmitInput button = form.getInputByValue("百度一下");  // 得到搜索框  final HtmlTextInput textField = form.getInputByName("q1");  //搜索我的idtextField.setValueAttribute("th是个小屁孩");  // 输入好了,我们点一下这个按钮  final HtmlPage nextPage = button.click();  // 我把结果转成String  String result = nextPage.asXml();  System.out.println(result);  //得到的是点击后的网页

感觉httpunit比httpclient好像简单了不少,以后java爬虫可以多试试这个框架,里面还有好多提取节点的方法可以直接调用,但是好像对div的class无法提取节点,不过可以根据id抓取节点,唉,不知道如果div没写id的网站怎么抓取,好像没有提供这样的方法可以根据class抓取,有知道的同学可以给点点子。

HttpUnit模拟按钮点击以及爬虫实现相关推荐

  1. java 模拟点击按钮_HttpUnit模拟按钮点击以及爬虫实现(模拟百度搜索)

    HttpUnit模拟按钮点击以及爬虫实现(模拟百度搜索) HttpUnit 本质上相当于一个后台的透明的浏览器引擎,使用java中的HttpUnit可以实现模拟点击按钮,抓取网页元素,实现动态爬虫,之 ...

  2. php模拟js点击按钮,JS模拟按钮点击功能的方法

    本文实例讲述了JS模拟按钮点击功能的方法.分享给大家供大家参考,具体如下: usually function function load(){ //下面两种方法效果是一样的 document.getE ...

  3. java htmlunit 点击_htmlunit 模拟按钮点击

    htmlunit有强大DOM模拟操作功能 包括给Input设置数据,模拟按钮点击等: 我们现在来用htmlunit模拟本站博客搜索功能: 比如我们要让htmlunit 填入查询关键字 然后点击 &qu ...

  4. qt中如何模拟按钮点击_Qt 实现按钮点击切换按钮图片

    最近在做一个课程设计(智能家居管家),因为控制要用到门,灯,警报等一系列至少拥有两个状态的物品,所以想弄一个切换图片的效果,点击按钮一次,按钮上的图片切换成另一个图片(另一个状态),再次点击切换回去. ...

  5. JS脚本实现模拟按钮点击:批量抓取百度推广中的关键词建议

    点击html5搜更精彩! JavaScript是个好东东,轻量级,好学易懂.尤其在HTML5时代,这个老朽的语言犹如凤凰涅槃,重获新生. 在Chrome浏览器中,利用小乐图客扩展中的JS代码模块(完美 ...

  6. qt中如何模拟按钮点击_如何快速在 Shopify 中加入按钮

    假如你会 `CSS` , `HTML` , `JS` 三件套,那么修改 `Shopify` 代码将不会太难(毕竟一个模板中的代码量还是挺多的,除非深入研究了代码,不然改起来还是会比较麻烦的). 但挺多 ...

  7. qt中如何模拟按钮点击_qt – 在Windows中模拟鼠标按钮单击

    这是在C#中,但可能会帮助您了解一下: [DllImport("user32.dll",CharSet=CharSet.Auto,CallingConvention=Calling ...

  8. Python爬虫实战——签名软件设计(一)python POST模拟网页按钮点击

    Python爬虫实战(windows) 关于本文: 上一篇文章介绍了如何使用python爬虫进行网页图片等素材的抓取.我们以爬虫抓取作为基础,结合GUI设计,再通过自定义方法,就可以实现一些小软件的设 ...

  9. MFC和c#中模拟对另一进程的窗口按钮点击

    1. 在自动化测试中经常要模拟窗口按钮的点击. 参考文章:http://blog.csdn.net/blackboyofsnp/article/details/3372719 有时我们需要这么做, 手 ...

最新文章

  1. java 静态初始化 调用_java JVM-类加载静态初始化块调用顺序
  2. python类装饰器详解-Python装饰器基础概念与用法详解
  3. 【双100%解法】LeetCode 141 【剑指Offer 23】链表中环的入口节点
  4. SQL语句:从一个表里按年份统计条目数
  5. java欧洲_java欧洲/明斯克时区问题
  6. 企业可视化大屏如何搭建
  7. 中晋最新消息2020年_最新消息!洛阳市第一高级中学发布2020年招生简章
  8. geotools等值线生成
  9. 计算机基础知识会议记录,电脑上会议记录怎么写?
  10. 博客整理:人在运维囧途系列学习目录
  11. IDEA中Git暂存代码暂存区的使用
  12. 了解如何定义定义变量和调用函数
  13. 将map中的key变小写
  14. pytorch DDP加速之gradient accumulation设置
  15. C++红与黑/蘑菇阵
  16. opencv-自定义色带产生类似jet的效果
  17. 方正圆明服务器装系统的引导盘,方正一键u盘装原版 win7系统教程
  18. vr数字景区应运而生,vr云游带商家线上转型
  19. 每日一道Leetcode算法——Fibonacci Number——2019.02.01
  20. Redis精通系列——Pub/Sub(发布订阅)

热门文章

  1. python中full函数_Python numpy.full_like函数方法的使用
  2. 非常详细的相机标定原理、步骤(一)
  3. 从广州到长沙,聊聊我的码农之路
  4. mysql导出数据字典_Mysql中三个导出数据字典文档Word或者HTML的工具
  5. 订单参数异常,请重新下单后再发起付款(ALIN42273)
  6. 斯卡哈鸿蒙17岁,大学校花cos斯卡哈,紫色胶衣尽显魅惑,网友:这谁顶得住
  7. 【实用】JAVA通过URL链接获取视频文件信息(无需下载文件)
  8. 初中女生学计算机好还是学医好,女生学医选什么专业好 初中毕业最好的选择!...
  9. 关于可重定位目标文件的格式与其符号表的概述
  10. 【总结】2019.8.19南海中学暑假集训Day1