HtmlUnit入门教程

htmlUnit是什么?

htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。是一个没有界面的浏览器,运行速度迅速。是junit的扩展之一。

主要作用:

常规意义上,该项目可以用来进行页面的测试工作,实现网页自动化测试(包括JS),但是一般来说,在小型爬虫项目中,这种框架十分常用,可以有效的分析出 dom的标签,并且有效的运行页面上的js以便得到一些需要执行JS才能得到的值。

以下我们使用代码演示常用方法:

 

package com.open111.demo;

import java.util.List;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlDivision;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class HtmlUnitTest {

	public static void main(String[] args) throws Exception {
		//使用webClient的构造方法指定以何种浏览器打开网页,此处为以firefox打开,也可以不指定
		WebClient webClient=new WebClient(BrowserVersion.FIREFOX_52);
		
		//使用代理IP,这是为了应对网站有反爬系统的情况
		//WebClient webClient2=new WebClient(BrowserVersion.FIREFOX_52,"202.106.16.36",3128);
		
		//HTMLClient对css和js的支持不好,所以将其关闭
		webClient.getOptions().setCssEnabled(false);
		webClient.getOptions().setJavaScriptEnabled(false);
		
		HtmlPage page=webClient.getPage("http://www.baidu.com");
		
		//获取当前页面的html
		String string=page.asXml();
		System.out.println("html内容为:"+string);
		
		//获取当前页面的文本
		String string2=page.asText();
		System.out.println("纯文本内容为:"+string2);
		
		//获取百度首页“百度一下”按钮
		HtmlInput button=(HtmlInput) page.getElementById("su");
		System.out.println("百度一下按钮的默认值为:"+button.getDefaultValue());
		
		//获取百度首页搜索输入框
		HtmlInput input=(HtmlInput) page.getElementById("kw");
		System.out.println("百度首页输入框的最大长度为:"+input.getAttribute("maxlength"));
		
		//找到百度首页所有div并打印第一个的html
		List<?> divs=page.getByXPath("//div");
		HtmlDivision division=(HtmlDivision) divs.get(0);
		System.out.println(division.asXml());
		
		//查找并获取特定条件的input
		List<?> inputs=page.getByXPath("//input[@id='su']");
		HtmlInput input2=(HtmlInput) inputs.get(0);
		System.out.println(input2.asXml());
		
		//为百度首页的搜索输入框设置值并提交搜索
		HtmlInput input3=(HtmlInput) page.getElementById("kw");
		//调用setValueAttribute方法设置值
		input3.setValueAttribute("日向優梨");
		HtmlInput button2=(HtmlInput) page.getElementById("su");
		//模拟点击“百度一下”按钮
		HtmlPage page2=button2.click();
		System.out.println(page2.asXml());
		
		//关闭webclient
		webClient.close();
	}
}

推荐大家一个Java的学习网站:Java知识学习网,Java资料下载,Java学习路线图,网址:https://www.java1010.com

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值