迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

用Java解析HTML

作者:迹忆客 最近更新:2023/08/07 浏览次数:

如果您正在开发一个处理 HTML 文件的程序,您可能需要找到一种有效解析 HTML 文件的方法。 您可以使用最常用的网页抓取工具 Jsoup 通过 Java 编程语言快速解析 HTML 文件。

本文讨论如何解析 HTML 文件。 此外,我们将通过提供必要的示例和解释来讨论该主题,以使该主题更容易。


Jsoup 在 Java 中的工作

Jsoup 的工作原理是解析网页的 HTML 文件,然后将其转换为 Document 对象。 您可以将其视为 DOM 的编程表示。

Jsoup 中名为 parse 的方法创建文档。 下面讨论 Jsoup 的一些功能:

  1. parse(File MyFile, @Nullable String charsetName) - 用于解析 HTML 文件。
  2. parse(InputStream in, @Nullable String CharsetName, String BaseUri) - 读取 InputStream 并解析它。
  3. parse(String html) - 用于解析 HTML 字符串。

Java中使用Jsoup解析HTML

我们下面的示例将使用 Jsoup 解析网站。 我们示例的 Java 代码如下:

// importing necessary packages
package javaparsehtml;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class JavaParseHtml {

    public static void main(String[] args) {
       URL MyUrl; 
        try {
            // Providing the URL of the website
            MyUrl = new URL("https://www.example.com");
            HttpURLConnection MyConnection;
            try {
                // Create an Http connection
                MyConnection = (HttpURLConnection) MyUrl.openConnection();
                // Defining the request format
                MyConnection.setRequestProperty("accept", "application/json");

                try {
                    // Create a response stream
                    InputStream ResponseStream = MyConnection.getInputStream();

                    // Parsing the website
                    Document MyDoc = Jsoup.parse(ResponseStream,
                                                 "UTF-8", "https://www.example.com");
                    // Showing the output as HTML
                    System.out.println(MyDoc.html());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
      }
  }

在上面的示例中,我们将说明如何解析 HTML 文件,并且我们已经掌握了每一行的用途。

在示例中,我们根据提供的 URL 创建了一个 HTTP 连接,然后定义了请求的属性。 之后,我们创建了一个InputStream并解析了网站。

最后,我们将网站打印为输出。 执行上述 Java 程序后,您将得到如下输出:

<!doctype html>
<html>
 <head>
  <title>Example Domain</title>
  <meta charset="utf-8">
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
        
    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>
 </head>
 <body>
  <div>
   <h1>Example Domain</h1>
   <p>This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.</p>
   <p><a href="https://www.iana.org/domains/example">More information...</a></p>
  </div>
 </body>
</html>

这里需要注意的是,如果你还没有安装或包含Jsoup的jar文件,你首先需要在你的项目目录中包含jar文件或安装包。 否则,您可能会收到错误。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Java 中延迟几秒钟的时间

发布时间:2023/12/17 浏览次数:217 分类:Java

本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。

如何在 Java 中把 Hashmap 转换为 JSON 对象

发布时间:2023/12/17 浏览次数:187 分类:Java

它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。

如何在 Java 中按值排序 Map

发布时间:2023/12/17 浏览次数:171 分类:Java

本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map 进行排序,并列出了一些示例代码来理解它。

如何在 Java 中打印 HashMap

发布时间:2023/12/17 浏览次数:192 分类:Java

本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。

在 Java 中更新 Hashmap 的值

发布时间:2023/12/17 浏览次数:146 分类:Java

本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。

Java 中的 hashmap 和 map 之间的区别

发布时间:2023/12/17 浏览次数:79 分类:Java

本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,

在 Java 中获取用户主目录

发布时间:2023/12/17 浏览次数:218 分类:Java

这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。

Java 中 size 和 length 的区别

发布时间:2023/12/17 浏览次数:179 分类:Java

这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。

Java 中的互斥锁

发布时间:2023/12/17 浏览次数:111 分类:Java

了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便