Jsoup解析HTML实例及文档方法详解

yizhihongxing
  1. Jsoup是什么?

Jsoup是一个Java的HTML解析器,可用于从网页中提取和处理数据。

  1. Jsoup常用的文档方法

① connect方法:建立到指定URL的连接,并返回一个Connection对象

例如:

Connection connection = Jsoup.connect("https://www.example.com");

② get方法:执行HTTP GET请求,并返回HTML

例如:

String html = Jsoup.connect("https://www.example.com").get().html();

③ parse方法:将HTML字符串解析成一个Document对象

例如:

String html = "<html><head><title>Jsoup Example</title></head><body><p>这是Jsoup解析HTML的示例。</p></body></html>";
Document doc = Jsoup.parse(html);

④ select方法:根据CSS选择器选择元素

例如:

String html = "<html><head><title>Jsoup Example</title></head><body><div class='container'><h1>标题</h1><ul><li>选项1</li><li>选项2</li><li>选项3</li></ul></div></body></html>";
Document doc = Jsoup.parse(html);
Elements elements = doc.select(".container ul li");
for (Element element : elements) {
    System.out.println(element.text());
}

输出结果为:

选项1
选项2
选项3
  1. Jsoup解析HTML实例

现在,我们假设有一个简单的网页需要进行解析操作。页面HTML代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Jsoup解析HTML实例</title>
</head>
<body>
    <div>
        <h1>这是一篇博客文章标题</h1>
        <p>
            这是一篇博客文章内容。这里包含了一些<a href="#">超链接</a>和一张图片<img src="https://www.example.com/image.jpg" alt="图片说明" />。
        </p>
    </div>
</body>
</html>

我们现在要从中获取以下信息:

  1. 标题
  2. 文章内容
  3. 超链接
  4. 图片链接
  5. 图片说明文字

示例代码如下:

String html = "<!-- 页面 HTML 代码 -->";
Document doc = Jsoup.parse(html);

// 获取标题
String title = doc.title();
System.out.println("标题:" + title);

// 获取文章内容
String content = doc.select("div > p").text();
System.out.println("文章内容:" + content);

// 获取超链接
Elements links = doc.select("a");
for (Element link : links) {
    String linkText = link.text();
    String linkHref = link.attr("href");
    System.out.println("超链接:" + linkText + " -> " + linkHref);
}

// 获取图片链接和说明文字
Elements imgs = doc.select("img");
for (Element img : imgs) {
    String imgSrc = img.attr("src");
    String imgAlt = img.attr("alt");
    System.out.println("图片链接:" + imgSrc);
    System.out.println("图片说明文字:" + imgAlt);
}

输出结果如下:

标题:Jsoup解析HTML实例
文章内容:这是一篇博客文章内容。这里包含了一些超链接和一张图片。
超链接:超链接 -> #
图片链接:https://www.example.com/image.jpg
图片说明文字:图片说明
  1. Jsoup解析HTML文件实例

下面,我们举一个更加实用的例子,假设我们需要从一个HTML文件中提取所有<a>标签的链接,并将这些链接打印出来。

首先,我们需要有一个HTML文件。我们已经准备了一个简单的example.html文件,内容如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>示例网站</title>
</head>
<body>
    <header>
        <h1>示例网站标题</h1>
        <nav>
            <ul>
                <li><a href="#">菜单1</a></li>
                <li><a href="#">菜单2</a></li>
                <li><a href="#">菜单3</a></li>
            </ul>
        </nav>
    </header>

    <main>
        <article>
            <h2>示例文章标题</h2>
            <p>这是一篇示例文章内容,其中包含了一些超链接和图片。</p>
            <ul>
                <li><a href="#">超链接1</a></li>
                <li><a href="#">超链接2</a></li>
                <li><a href="#">超链接3</a></li>
            </ul>
            <img src="https://www.example.com/image.jpg" alt="示例图片" />
        </article>
    </main>

    <footer>
        <p>版权所有 &copy; 2021 示例网站</p>
    </footer>
</body>
</html>

示例代码如下:

File input = new File("example.html");
try {
    Document doc = Jsoup.parse(input, "UTF-8");
    Elements links = doc.select("a[href]");
    for (Element link : links) {
        String linkHref = link.attr("href");
        System.out.println(linkHref);
    }
} catch (IOException e) {
    e.printStackTrace();
}

输出结果如下:

#
#
#
# 
#
#
https://www.example.com/image.jpg

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Jsoup解析HTML实例及文档方法详解 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • js中split函数的使用方法说明

    下面是“js中split函数的使用方法说明”的完整攻略。 什么是split函数 split函数是JavaScript中的一个字符串方法,主要用于将一个字符串根据指定的分隔符,切割成一个字符串数组。 其语法如下: string.split(separator, limit); 其中,separator代表指定的分隔符,可以是一个字符串或一个正则表达式;limi…

    JavaScript 2023年5月27日
    00
  • 通过JS 获取Mouse Position(鼠标坐标)的代码

    获取鼠标坐标是JavaScript中的常见需求之一,可以通过鼠标事件对象获取鼠标相对于页面的坐标位置。 以下是获取鼠标位置的代码: document.addEventListener(‘mousemove’, (event) => { const mouseX = event.clientX; const mouseY = event.clientY;…

    JavaScript 2023年6月10日
    00
  • 让JavaScript拥有类似Lambda表达式编程能力的方法

    要让JavaScript拥有类似Lambda表达式编程能力,可以使用箭头函数(Arrow Function)来实现。 箭头函数是ES6中新增的语法,简单来说就是一种更加简洁的函数表达式。通过箭头函数,我们可以更加简单快速地编写函数,并且可以方便地使用函数式编程的一些特性。 下面是箭头函数的基本语法: (argument1, argument2, …) =…

    JavaScript 2023年5月28日
    00
  • 收集项目中用到的工具函数

    工具函数 收集项目中常用的工具函数,以备后用,使用 TS 编写。 1. 时间格式化 /** * 格式化时间格式 * @param {*} value 传入时间(单位秒) * @returns 返回时间格式 XX 天 XX 小时 XX 分钟 XX 秒 */ export const formatSecond = function (value: number)…

    JavaScript 2023年4月28日
    00
  • JS数组方法reduce的妙用分享

    下面是“JS数组方法reduce的妙用分享”的完整攻略。 简介 JavaScript中,reduce()是一个用于数组中元素运算的方法,它接收一个回调函数作为参数,返回一个计算结果。reduce()方法可以用于对数组中的元素进行求和、求积、寻找最大、最小值等操作。 用法 reduce()方法的使用方式如下: arr.reduce(callback, init…

    JavaScript 2023年5月27日
    00
  • JSON 数据格式详解

    JSON 数据格式详解 在现代 Web 开发中,数据交换是至关重要的一部分。而 JSON (JavaScript Object Notation) 已被广泛用于此。本文将详细介绍 JSON 的格式以及如何使用它进行数据交换。 什么是 JSON JSON 是一种文本格式,它是由 JavaScript 对象表示法衍生而来。JSON 是轻量级的数据交换格式,易于阅…

    JavaScript 2023年5月27日
    00
  • Javascript中的call()方法介绍

    Javascript中的call()方法介绍 什么是call()方法? call() 方法在调用一个函数时,可以指定函数内部的 this 关键字所指向的值。通过 call() 方法,我们可以通过一个已有的对象去调用另一个对象的方法。 call()方法的基本语法 fun.call(thisArg, arg1, arg2, …) call()方法参数说明 t…

    JavaScript 2023年5月28日
    00
  • js实现网页防止被iframe框架嵌套及几种location.href的区别

    下面我将详细讲解”JS实现网页防止被iframe框架嵌套及几种location.href的区别”的完整攻略。 JS实现网页防止被iframe框架嵌套 在编写网页时,我们可能希望页面不能被嵌套在iframe框架中,以避免网页的被其他网站直接嵌套到其它站点的页面上,从而保证网站数据的安全性和用户体验。为了实现网页的防止被iframe框架嵌套,我们可以使用以下方法…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部