HttpUnit模拟按钮点击以及爬虫实现
2016-10-29 22:10
309 查看
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"); //搜索我的id textField.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抓取,有知道的同学可以给点点子。
相关文章推荐
- js实现模拟自动点击按钮,并且在10秒倒计时之后疯狂点击
- 1.toolbar的简单实用,以及点击左边的按钮实现后退finish()功能
- Python爬虫实战——签名软件设计(一)python POST模拟网页按钮点击
- 如何使用SendMessage函数实现模拟鼠标点击按钮事件?
- HtmlUnit实现模拟浏览器点击按钮的效果
- C# WebBrowser控件实现定时模拟按钮点击
- 解决PopupWindow实现按钮点击消失和显示,以及点击它外围可以消失的方法
- Android XML中实现按钮点击效果以及背景平铺
- 点击按钮实现网页重定向的方式以及其他一些延伸
- 不使用JS,使用CSS3 target 以及 动画效果实现,点击一下弹出,并且保持弹出状态,然后再点击一下弹回的导航栏(或者可以叫做按钮)
- 关于在自定义View中添加Button按钮以及实现点击事件
- 模拟JS触发按钮点击功能
- F:在datagrid中 怎么实现 点击一行(多列)传一个id过去到第二页显示其具体内容,不用按钮、链接等?
- 可拖动拉伸的左右分栏效果,本例子是用Table以及JS来实现的,左右分栏可改变,拖动中间的边框就可实现宽度的调整,点击时可设置为隐藏左侧列表。
- 【WPF】XAML实现按钮背景图片的点击切换
- Android(2) 实现摇晃锁屏,类似与点击关机按钮
- jquery 实现 点击按钮后倒计时效果,多用于实现发送手机验证码、邮箱验证码
- C# 模拟鼠标点击别的程序按钮
- iOS UICollectionView 按钮点击变色(收藏点赞功能)实现
- 安卓的LinearLayout实现按钮的点击效果