当前位置:首页 > Java

java如何解析html页面

2026-03-17 19:07:20Java

使用 Jsoup 解析 HTML

Jsoup 是一个流行的 Java HTML 解析库,能够方便地从 HTML 中提取数据或操作 DOM 结构。

引入 Jsoup 依赖(Maven):

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.16.1</version>
</dependency>

解析 HTML 字符串:

String html = "<html><head><title>示例</title></head><body><p>内容</p></body></html>";
Document doc = Jsoup.parse(html);
String title = doc.title();
Elements paragraphs = doc.select("p");

从 URL 加载 HTML:

Document doc = Jsoup.connect("https://example.com").get();

使用 Java 内置 XML 解析器

对于符合 XHTML 规范的文档,可以使用 Java 内置的 XML 解析器(如 DOM 或 SAX)。

java如何解析html页面

DOM 解析示例:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new InputSource(new StringReader(html)));
NodeList nodes = doc.getElementsByTagName("p");

使用 HTMLCleaner

HTMLCleaner 是另一个轻量级 HTML 解析库,适合处理不太规范的 HTML。

引入依赖:

java如何解析html页面

<dependency>
    <groupId>net.sourceforge.htmlcleaner</groupId>
    <artifactId>htmlcleaner</artifactId>
    <version>2.29</version>
</dependency>

使用示例:

HtmlCleaner cleaner = new HtmlCleaner();
TagNode node = cleaner.clean(new URL("https://example.com"));
Object[] nodes = node.evaluateXPath("//p");

使用 Jericho HTML Parser

Jericho 提供了流式解析能力,适合处理大型 HTML 文件。

引入依赖:

<dependency>
    <groupId>net.htmlparser.jericho</groupId>
    <artifactId>jericho-html</artifactId>
    <version>3.4</version>
</dependency>

使用示例:

Source source = new Source(new File("input.html"));
List<Element> elements = source.getAllElements("div");

选择解析器的考虑因素

  • Jsoup:最适合大多数场景,API 友好,支持 CSS 选择器
  • 内置 XML 解析器:仅适用于严格规范的 XHTML
  • HTMLCleaner:对畸形 HTML 容忍度较高
  • Jericho:适合流式处理大文件,内存效率高

对于现代 Java 项目,Jsoup 通常是首选方案,因其平衡了功能完备性和易用性。需要处理复杂选择器查询时,其 CSS 选择器支持能显著简化代码。

标签: 页面java
分享给朋友:

相关文章

java如何运行

java如何运行

运行Java程序的基本方法 Java程序的运行需要经过编写、编译和执行三个主要阶段。以下是具体步骤: 编写Java源代码 创建一个以.java为后缀的文件,例如HelloWorld.java。文件内…

jquery页面

jquery页面

jQuery 页面操作指南 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互的操作。以下是 jQuery 在页面中的常见使用方法…

java如何读取文件

java如何读取文件

读取文件的常用方法 Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法: 使用FileInputStream和BufferedInputStream读取二进制文件 try…

java如何产生随机数

java如何产生随机数

使用 Math.random() 方法 Math.random() 生成一个范围在 [0.0, 1.0) 的伪随机 double 值。通过缩放和偏移可以生成指定范围的随机数。 double ra…

实现js页面跳转页面

实现js页面跳转页面

使用 window.location.href 通过修改 window.location.href 实现跳转,浏览器会加载新页面并记录到历史记录中: window.location.href = "…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…