Java开发
Jsoup的使用教程(1)
2025-01-22 28 0
简介 Jsoup的使用教程
1、Jsoup简介
Jsoup 是一款基于 Java 语言的开源项目,主要用于请求 URL 获取网页内容、解析 HTML 和 XML 文档。使用 Jsoup 可以非常轻松地构建一些轻量级网络爬虫。
2、jar包下载
官网地址:https://jsoup.org/download
基于 pom.xml 文件的配置信息
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.18.3</version>
</dependency>
3、请求URL
org.jsoup.Jsoup 类可以用来处理连接操作。在 org.jsoup.Jsoup 类中提供了 connect(String url)方法来创建一个新连接,
该方法的实现依赖于 Java 网络通信包 java.net。在创建连接之后,可通过具体请求方法(如 GET 和 POST)获取 URL 对应 的 HTML 文件。
下面的程序为 Jsoup 请求该网页的一种方式,这里使用 get()方法执行请求,该方法返回一个 Document 类型的对象
,使用 Element 类中的 html()方法可以将 Document 类型的对象转化为 String 类型。
public static void main(String[] args) throws IOException {
//创建连接
Connection connection = Jsoup.connect("http://www.sina.com");
//请求网页,也可以使用POST请求
Document document = connection.get();
//输出HTML
System.out.println(document.html());
}
另外,也可以利用 Jsoup 先获取响应 Response,再获取 HTML 内容,在获取响应时,method(Method method)方法中的参数为具体的 HTTP 请求方法, 这里共有 8 种。
在下面的程序中,设置的请求方法为 GET。程序的输出 结果如图所示,具体包括请求的 URL、响应状态码、响应数据类型、响应状态信 息以及 HTML 文件。
如果将程序中的请求方法设置成 HEAD,重新运行程序,则 会发现无法输出 HTML 文件,但能获取响应头信息。
public static void main(String[] args) throws IOException {
//获取响应
Connection.Response response = Jsoup.connect("http://www.baidu.com")
.method(Connection.Method.GET).execute();
URL url = response.url();//查看请求的URL
System.out.println("请求的URL为:" + url);
int statusCode = response.statusCode();//获取响应状态码
System.out.println("响应状态码:" + statusCode);
String contentType = response.contentType();//获取响应数据类型
System.out.println("响应类型为:" + contentType);
String statusMessage = response.statusMessage();//响应信息
System.out.println("响应信息为:" + statusMessage);
//判断响应状态码是否为200
if (statusCode == 200) {
//通过这种方式可以获得响应的HTML文件
String html = new String(response.bodyAsBytes(), "utf8");
//获取HTML内容,但对应的是Document类型
Document document = response.parse();
//这里HTML和Document数据是一样的,但Document是经过格式化的
System.out.println(html);
System.out.println(document);
}
}