HtmlUnit笔记
HtmlUnit无边界浏览器,可以实例化浏览器进行操作
新建Maven项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RpmjD6c7-1602074481946)(C:\Users\崔\Downloads\maven创建.png)]
导入依赖
在pom.xml中导入依赖
<dependencies>
//基础依赖
<dependency>
<groupId>net.sourceforge.htmlunit
</groupId>
<artifactId>htmlunit
</artifactId>
<version>2.27
</version>
</dependency>
//将获取到的页面中消息列表的标题和超链接URL打印到控制台,操作HTML文档的库是Jsoup,需要添加依赖
<dependency>
<groupId>org.jsoup
</groupId>
<artifactId>jsoup
</artifactId>
<version>1.8.3
</version>
</dependency>
</dependencies>
实现百度搜索案例
package com.cui;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.*;
import javax.servlet.http.HttpServlet;
import java.awt.*;
import java.io.IOException;
/**
* Hello world!
*/
public class App {
public static void main(String[] args) {
WebClient webClient = new WebClient();//实例化一个浏览器
//配置一下不加载CSS JS
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setJavaScriptEnabled(false);
//拿到网页
HtmlPage htmlPage = null;//定义网页容器
try {
htmlPage = webClient.getPage("http://baidu.com");
} catch (IOException e) {
e.printStackTrace();
}
//根据名字得到表单,查看源代码找到表单的名字
final HtmlForm from = htmlPage.getFormByName("f");
//同理获取百度一下按钮
final HtmlSubmitInput button = (HtmlSubmitInput) htmlPage.getElementById("su");
//同理得到搜索框
final HtmlTextInput textInput = (HtmlTextInput) htmlPage.getElementById("kw");
//输入操作内容
String s = "王者荣誉";
textInput.setValueAttribute(s);
//点击按钮
HtmlPage nextPage = null;//创建一个下个页面容器
try {
nextPage = button.click();
} catch (IOException e) {
e.printStackTrace();
}
//把结果转换成字符串
String result = nextPage.asXml();
System.out.println(result);
}
}
~~~java
ing result = nextPage.asXml();
System.out.println(result);
}
}