📅  最后修改于: 2023-12-03 15:02:26.347000             🧑  作者: Mango
Jsoup是一个Java的HTML解析器,可以从URL,文件或字符串中提取数据。它可以用于网页爬取,数据挖掘等任务。本文主要介绍如何使用Jsoup从URL加载数据。
首先,需要在项目中导入Jsoup库。可以使用maven或者gradle添加如下依赖:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.2</version>
</dependency>
implementation "org.jsoup:jsoup:1.14.2"
使用Jsoup从URL加载数据非常简单。可以使用Jsoup.connect()
方法构造一个Connection对象,然后通过调用get()
方法获取URL对应的HTML内容。
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import java.io.IOException;
public class JsoupDemo {
public static void main(String[] args) throws IOException {
String url = "https://www.baidu.com";
Connection connection = Jsoup.connect(url);
String html = connection.get().html();
System.out.println(html);
}
}
上面的代码中,我们首先定义了一个URL,然后使用Jsoup.connect(url)
方法构造了一个Connection对象。接下来,通过调用get()
方法获取了URL对应的HTML内容,最后使用html()
方法将HTML内容转化为字符串。
运行上述代码,可以看到输出了URL对应的HTML内容。
有时候,需要从URL中带参数获取数据。可以通过data()
方法向Connection对象中添加参数。例如,从Github API获取用户的repos可以这样做:
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class JsoupDemo {
public static void main(String[] args) throws IOException {
String url = "https://api.github.com/users/octocat/repos";
Connection connection = Jsoup.connect(url);
Map<String, String> data = new HashMap<>();
data.put("type", "all");
connection.data(data);
String html = connection.get().body().html();
System.out.println(html);
}
}
上述代码中,我们首先定义了一个URL,然后使用Jsoup.connect(url)
方法构造了一个Connection对象。接下来,使用Map
集合存储需要传递的参数,然后通过调用data()
方法向Connection对象中添加参数。最后使用html()
方法将HTML内容转化为字符串并输出。
运行上述代码,可以看到输出了Github API返回的HTML内容。
以上就是使用Jsoup从URL加载数据的示例代码。可以根据业务需要,自定义更多参数以获取所需的数据。使用Jsoup的好处在于,它提供了很多方便的工具方法,使得数据的提取变得极其简单。