📜  讨论jsoup(1)

📅  最后修改于: 2023-12-03 15:41:42.540000             🧑  作者: Mango

讨论 Jsoup

什么是 Jsoup

Jsoup 是一个 Java HTML 处理库,能够通过类似于 jQuery 选择器的语法,方便地从 HTML 文档中提取和操作数据。

Jsoup 主要特点
  • 支持 HTML 解析、错误修复和 DOM 操作。
  • 遵循 W3C HTML5 规范。
  • 操作灵活方便,支持类似于 jQuery 的选择器。
  • 能够完成复杂的 HTML 数据提取任务。
  • 方便的 API 文档和示例。
使用方法

使用 Jsoup 需要下载相应的 jar 包,可以在官方网站 https://jsoup.org/download 下载最新版本的 jar 包。

以下是一个简单的示例:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupDemo {

    public static void main(String[] args) throws Exception {
        // 定义需要解析的 URL
        String url = "https://www.baidu.com/";
        // 获取 Document 对象
        Document doc = Jsoup.connect(url).get();
        // 获取标题
        String title = doc.title();
        System.out.println("标题为:" + title);
        // 获取所有链接
        Elements links = doc.select("a[href]");
        for (Element link : links) {
            System.out.println(link.attr("href"));
        }
    }
}
常见用法
获取元素内容

通过选择器选取 HTML 元素,然后获取相应的内容,例如:

// 选取一个元素
Element element = doc.select("div.my-class").first();
String text = element.text(); // 获取元素文本
String html = element.html(); // 获取元素 HTML
String attr = element.attr("href"); // 获取元素属性
过滤内容

可以使用选择器对 HTML 内容进行过滤,例如:

Elements links = doc.select("a[href^=http://example.com]"); // 选取所有 href 属性以 http://example.com 开头的元素
Elements paragraphs = doc.select("p:has(a)"); // 选取所有包含 a 元素的 p 元素
提取数据

可以从 HTML 内容中提取有价值的数据,例如:

// 获取百度首页的搜索框默认关键字
Element input = doc.select("input#kw").first();
String value = input.val();
总结

Jsoup 是一个常用的 HTML 处理库,能够帮助开发者方便地提取和操作 HTML 数据。其灵活的选择器和强大的数据提取功能,使得解析 HTML 变得更加简单。