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);
    }
}

点赞 0

我的名片

网名:梦宇信息技术

职业:软件开发、Mes系统工程师

现居:福建省-福州市

QQ:703159

站点信息

  • 联系QQ:703159
  • 文章统计97篇文章
  • 标签总数6
  • 加我微信:扫码,加我微信