当前位置: 首页 > 图灵资讯 > 技术篇> 优雅地解析HTML文档-Jsoup

优雅地解析HTML文档-Jsoup

来源:图灵教育
时间:2023-06-26 15:44:48

一、介绍

Jsoup 它很受欢迎 Java HTML 它主要用于从 Web 在页面中提取和分析 HTML 数据。它提供了一种简单而优雅的方法,使开发人员能够快速分析 HTML 从中提取数据。

二、特性

1. 遵循 HTML5 标准。

2. 分析速度快,灵活性强。

3. API 易于使用,并提供丰富的文档。

4. 可直接从UTL出发、在文件或字符串中获取 HTML 内容。

三、原理

Jsoup 解析 HTML 原则是先将 HTML 将文件转换成一个 Document 然后使用类似的对象,然后使用类似的对象 jQuery 的 API,读取或操作选择器语法 HTML。Jsoup 将根据要求从文档中找到元素或属性,并提取所需内容。

四、使用场景

1. 爬网页数据

2. 分析和处理 HTML 文档

3. 抓取数据并进行处理

五、注意事项

1. Jsoup 的 API 只能用于分析 HTML,不能解析 XML 文档。

2. 在分析过程中出现异常时,需要采用异常处理机制,避免程序异常停止。

3. 在分析之前,需要确认分析的文档是否合法正确 HTML 文档。

六、实际场景

1. 案例一

(1) 场景

用Jsoup做网络爬虫的例子。这个例子是用来爬起博客文章的内容的。

(2) 代码

import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import java.io.IOException;/** * 用Jsoup爬一个简单的页面 * * @author wxy * @since 2023-05-31 */public class Jsoupcase1 {    public static void main(String[] args) throws IOException {        Document document = Jsoup                .connect("https://blog.51cto.com/u_15898747/6107276")                .get();        // 获取文章标题        Elements title = document                .select("p[class=title]>h1");        System.out.println(文章标题: ");        // 打印文章标题文本内容        System.out.println(title.text());        // 获取文章内容        Elements contents = document                .select("p[id=container]");        System.out.println(文章内容: ");        for (Element content : contents) {            for (Element element : content.children()) {                // 打印内容标签中的文本内容                System.out.println(element.text());            }        }    }}

爬行结果如下:

优雅地解析HTML文档-Jsoup_Jsoup