java 模拟点击按钮_HttpUnit模拟按钮点击以及爬虫实现(模拟百度搜索)
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模拟按钮点击以及爬虫实现(模拟百度搜索)相关推荐
- 2021年安全生产模拟考试(全国特种作业操作证高处作业-高处安装维护拆除模拟考试题库一)安考星
高处作业–高处安装维护拆除 该模拟题库适用于全国特种作业操作证高处作业–高处安装维护拆除模拟考试题通用部分,了解更多工种完整题库信息,百度搜索[安考星]或关注"安考星"微信公众号, ...
- JAVA:编写一个程序,模拟电梯得功能。功能接口包括电梯上行按钮、下行按钮、楼层选择与电梯在行驶过程中得楼层显示。
编写一个程序,模拟电梯得功能.功能接口包括电梯上行按钮.下行按钮.楼层选择与电梯在行驶过程中得楼层显示. (1) 由用户选择按上行按钮还就是下行按钮,选择操作后再由用户输入要进入得楼层,进而电梯开始运 ...
- Android三大按钮,模拟Android导航栏三大金刚按键点击
模拟Android导航栏三大金刚按键点击 这里需要使用的是AccessibilityService无障碍辅助服务,可以全局监听界面所有的变化: 1.构建无障碍服务 public class Float ...
- C++实现类和对象:编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。
浙江理工大学信息学院 面向对象程序设计实验报告 实验名称:类的定义与使用 学时安排:3 实验类别:设计性实验 ...
- python 自动点击上传以后上传文件,python使用selenium模拟点击网页实现自动导入上传文件功能...
一.环境准备 Python版本:3.4 编辑器:Pycharm excel文件:导入的excel模板 二.python代码 由于工作需要,需要每天定时导入相关excel文件进入后台数据库,由于导入的逻 ...
- iOS 按钮、Cell暴力点击触发多次响应的问题研究
在app使用的过程中,由于网络差,手机卡顿等问题,用户在不经意的时候可能多次操作,造成多次请求.或者页面多次push等,给用户带来了不好的体验,那么如何解决相关的问题呢?本文介绍几种解决办法,在某种程 ...
- ProgressBar(圆形、水平进度条)的基本使用(点击Button1按钮,显示或消失圆形ProgressBar)(每点击一次Button2按钮,水平进度条增加10%)
ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据.它的用法也非常简单. 首先它有两种形式,一种是圆形进度条,另一种是水平进度条. 效果图: activity_main. ...
- kotlin android获取按钮,Kotlin 实现按钮点击跳转监听事件方式
Kotlin 实现按钮点击跳转监听事件方式 发布时间:2020-10-22 16:31:18 来源:脚本之家 阅读:96 作者:marchelli 例子:首页Guiding页面点击按钮跳转到主页面 p ...
- java swing html_Swing中如何使用HTML按钮
以下示例展示了如何在Java Swing应用程序中创建HTML按钮. 使用以下API - JButton(HTML) - 使用HTML内容创建标准按钮.确保html内容的开头存在. setForegr ...
最新文章
- (OCR论文)Mask TextSpotter V3机翻
- 使用元学习和推理改善您的模型!
- 细胞如何获得秩序?除了形成细胞器,还可以发生相分离
- python写空气质量提醒_你所在的城市空气质量如何?用Python可视化分析空气质量...
- NYOJ 608 畅通工程
- 2020 操作系统第零天复习(知识点总结)
- 看网络电子围栏如何做好周界安防
- 用GDB Server进行远程调试
- LeetCode 352. 将数据流变为多个不相交区间(map二分查找)
- 5 月份最热的 GitHub 项目
- Linux之MySQL源码编译安装
- local lua 多个_Lua 级别 CPU 火焰图介绍
- matlab 工程文件下载,工程文件管理
- MATLAB Simulink
- MathWorks 中国
- count(1),count(*),count(rowid)
- linux重启切换内核,centos7切换启动内核与切换启动模式的讲解
- 基于mapreduce的购物篮分析算法实现
- 3137102432_施少兵_实验2
- SAP 用户出口合集
- 移动支付变巨头掘金地,银盒子手握SaaS成新宠
- 12306分流免费抢票工具
热门文章
- C++学习day--01 C生万物
- linux如何创建ppt文件,桌面应用|如何在 Ubuntu 和其他 Linux 发行版中创建照片幻灯片...
- 无法从计算机验证正在安装驱动,无法为此计算机验证正在安装的驱动程序怎么办?...
- 汽车IVI中控开发入门及进阶(三):概述
- 软件工程——————面向对象的概述
- 开发微信第三方平台所遇到的坑
- Nominatim/Installation
- 将一个英文句子各个的单词首字母大写
- java 数字翻译成英文_Java实现数字日期翻译成英文单词的工具类案例分享
- foxmail的邮局和端口_pop3端口号详细介绍