迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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文件或安装包。 否则,您可能会收到错误。

上一篇:Java Lang Runtime Java 中的 exec() 方法

下一篇:没有了

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

本文地址:

相关文章

Java Lang Runtime Java 中的 exec() 方法

发布时间:2023/08/07 浏览次数:85 分类:Java

本文介绍了 Java 的 Runtime.exec() 方法。Java Lang Runtime Java 中的 exec() 方法 Java Lang Runtime 类用于每个 Java 应用程序与类运行时实例和环境接口之间的交互。

控制 java.io.tmpdir 的环境变量

发布时间:2023/08/07 浏览次数:138 分类:Java

本文将介绍名为 java.io.tmpdir 的环境变量,它可用于调节 Java 的临时文件目录。Java虚拟机(JVM)可以生成临时文件并将它们存储在java.io.tmpdir系统参数指定的目录中。

Java 中的 Zulu

发布时间:2023/08/07 浏览次数:57 分类:Java

Zulu 是 Java 11 的一部分。它受到广泛的操作系统和硬件平台的支持。如何在 Java 中安装 Zulu 首先,从 Azul 的官方下载页面下载必要的 ZIP 或 TAR.GZ。

在 Java 中使用 Mockito 模拟静态方法

发布时间:2023/08/07 浏览次数:180 分类:Java

本文介绍了如何使用mockito来模拟Java中的静态方法。Java 中的模拟静态方法 在 Java 中执行单元测试时需要模拟静态方法。

JVM -XSS 选项

发布时间:2023/08/07 浏览次数:141 分类:Java

-Xss 标志主要用于更改 JVM 堆栈的大小。 让我们看一下下面的命令,通过这些命令我们可以更改 JVM 堆栈的大小。使用 -Xss 更改 JVM 堆栈的大小

Java Goto

发布时间:2023/08/07 浏览次数:72 分类:Java

与其他编程语言不同,Java 没有 goto。 相反,Java 包含关键字 label。关键字 label 的作用是改变程序的流程,根据指定的条件跳转到程序的另一段。

Java - 在方法参数中使用 Nullable 注注解

发布时间:2023/08/07 浏览次数:181 分类:Java

本文简要讨论 @Nullable 注解,并通过代码示例演示其在方法参数中的使用。@Nullable 注解及其在方法参数中的使用 @Nullable 注释允许您创建可以返回 null 值的方法调用。

Java - 在方法参数中使用 NotNull 注解

发布时间:2023/08/07 浏览次数:148 分类:Java

本文将讨论 @NotNull 注解,并使用代码示例来演示我们如何在 Java 中工作时在方法参数中使用它。@NotNull 注解概述 如果你想设置变量或方法不返回任何空值,那么你可以使用 @NotNull 注解。

Java 中的泛型接口

发布时间:2023/08/07 浏览次数:61 分类:Java

本文将讨论泛型接口以及如何使用它。 我们将使用示例和解释来讨论该主题,以使该主题更容易。Java 中的泛型接口

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便