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

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

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.模拟文本框与模拟按钮提交,下面我们模拟实现模拟百度搜索关键字。

```java

// 得到浏览器对象,直接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");

//搜索我的id

textField.setValueAttribute("th是个小屁孩");

// 输入好了,我们点一下这个按钮

final HtmlPage nextPage = button.click();

// 我把结果转成String

String result = nextPage.asXml();

System.out.println(result);  //得到的是点击后的网页

```

java 模拟点击按钮_HttpUnit模拟按钮点击以及爬虫实现(模拟百度搜索)相关推荐

  1. 2021年安全生产模拟考试(全国特种作业操作证高处作业-高处安装维护拆除模拟考试题库一)安考星

    高处作业–高处安装维护拆除 该模拟题库适用于全国特种作业操作证高处作业–高处安装维护拆除模拟考试题通用部分,了解更多工种完整题库信息,百度搜索[安考星]或关注"安考星"微信公众号, ...

  2. JAVA:编写一个程序,模拟电梯得功能。功能接口包括电梯上行按钮、下行按钮、楼层选择与电梯在行驶过程中得楼层显示。

    编写一个程序,模拟电梯得功能.功能接口包括电梯上行按钮.下行按钮.楼层选择与电梯在行驶过程中得楼层显示. (1) 由用户选择按上行按钮还就是下行按钮,选择操作后再由用户输入要进入得楼层,进而电梯开始运 ...

  3. Android三大按钮,模拟Android导航栏三大金刚按键点击

    模拟Android导航栏三大金刚按键点击 这里需要使用的是AccessibilityService无障碍辅助服务,可以全局监听界面所有的变化: 1.构建无障碍服务 public class Float ...

  4. C++实现类和对象:编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。

    浙江理工大学信息学院 面向对象程序设计实验报告 实验名称:类的定义与使用                      学时安排:3 实验类别:设计性实验                          ...

  5. python 自动点击上传以后上传文件,python使用selenium模拟点击网页实现自动导入上传文件功能...

    一.环境准备 Python版本:3.4 编辑器:Pycharm excel文件:导入的excel模板 二.python代码 由于工作需要,需要每天定时导入相关excel文件进入后台数据库,由于导入的逻 ...

  6. iOS 按钮、Cell暴力点击触发多次响应的问题研究

    在app使用的过程中,由于网络差,手机卡顿等问题,用户在不经意的时候可能多次操作,造成多次请求.或者页面多次push等,给用户带来了不好的体验,那么如何解决相关的问题呢?本文介绍几种解决办法,在某种程 ...

  7. ProgressBar(圆形、水平进度条)的基本使用(点击Button1按钮,显示或消失圆形ProgressBar)(每点击一次Button2按钮,水平进度条增加10%)

    ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据.它的用法也非常简单. 首先它有两种形式,一种是圆形进度条,另一种是水平进度条. 效果图: activity_main. ...

  8. kotlin android获取按钮,Kotlin 实现按钮点击跳转监听事件方式

    Kotlin 实现按钮点击跳转监听事件方式 发布时间:2020-10-22 16:31:18 来源:脚本之家 阅读:96 作者:marchelli 例子:首页Guiding页面点击按钮跳转到主页面 p ...

  9. java swing html_Swing中如何使用HTML按钮

    以下示例展示了如何在Java Swing应用程序中创建HTML按钮. 使用以下API - JButton(HTML) - 使用HTML内容创建标准按钮.确保html内容的开头存在. setForegr ...

最新文章

  1. (OCR论文)Mask TextSpotter V3机翻
  2. 使用元学习和推理改善您的模型!
  3. 细胞如何获得秩序?除了形成细胞器,还可以发生相分离
  4. python写空气质量提醒_你所在的城市空气质量如何?用Python可视化分析空气质量...
  5. NYOJ 608 畅通工程
  6. 2020 操作系统第零天复习(知识点总结)
  7. 看网络电子围栏如何做好周界安防
  8. 用GDB Server进行远程调试
  9. LeetCode 352. 将数据流变为多个不相交区间(map二分查找)
  10. 5 月份最热的 GitHub 项目
  11. Linux之MySQL源码编译安装
  12. local lua 多个_Lua 级别 CPU 火焰图介绍
  13. matlab 工程文件下载,工程文件管理 - MATLAB Simulink - MathWorks 中国
  14. count(1),count(*),count(rowid)
  15. linux重启切换内核,centos7切换启动内核与切换启动模式的讲解
  16. 基于mapreduce的购物篮分析算法实现
  17. 3137102432_施少兵_实验2
  18. SAP 用户出口合集
  19. 移动支付变巨头掘金地,银盒子手握SaaS成新宠
  20. 12306分流免费抢票工具

热门文章

  1. C++学习day--01 C生万物
  2. linux如何创建ppt文件,桌面应用|如何在 Ubuntu 和其他 Linux 发行版中创建照片幻灯片...
  3. 无法从计算机验证正在安装驱动,无法为此计算机验证正在安装的驱动程序怎么办?...
  4. 汽车IVI中控开发入门及进阶(三):概述
  5. 软件工程——————面向对象的概述
  6. 开发微信第三方平台所遇到的坑
  7. Nominatim/Installation
  8. 将一个英文句子各个的单词首字母大写
  9. java 数字翻译成英文_Java实现数字日期翻译成英文单词的工具类案例分享
  10. foxmail的邮局和端口_pop3端口号详细介绍