用Java解析HTML
如果您正在开发一个处理 HTML 文件的程序,您可能需要找到一种有效解析 HTML 文件的方法。 您可以使用最常用的网页抓取工具 Jsoup 通过 Java 编程语言快速解析 HTML 文件。
本文讨论如何解析 HTML 文件。 此外,我们将通过提供必要的示例和解释来讨论该主题,以使该主题更容易。
Jsoup 在 Java 中的工作
Jsoup 的工作原理是解析网页的 HTML 文件,然后将其转换为 Document 对象。 您可以将其视为 DOM 的编程表示。
Jsoup 中名为 parse 的方法创建文档。 下面讨论 Jsoup 的一些功能:
- parse(File MyFile, @Nullable String charsetName) - 用于解析 HTML 文件。
- parse(InputStream in, @Nullable String CharsetName, String BaseUri) - 读取 InputStream 并解析它。
- 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() 方法
发布时间: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 - 在方法参数中使用 Nullable 注注解
发布时间:2023/08/07 浏览次数:181 分类:Java
-
本文简要讨论 @Nullable 注解,并通过代码示例演示其在方法参数中的使用。@Nullable 注解及其在方法参数中的使用 @Nullable 注释允许您创建可以返回 null 值的方法调用。
Java - 在方法参数中使用 NotNull 注解
发布时间:2023/08/07 浏览次数:148 分类:Java
-
本文将讨论 @NotNull 注解,并使用代码示例来演示我们如何在 Java 中工作时在方法参数中使用它。@NotNull 注解概述 如果你想设置变量或方法不返回任何空值,那么你可以使用 @NotNull 注解。