Java Jsoup

前言

1、简介

  • 简介

    • xml 是 Extensible Markup Language 可扩展标记语言的缩写。
    • html 是 HyperText Markup Language 超文本标记语言的缩写。
    • html 可以简单看成是 xml 的一个子集。 html 用的都是一些预先定义的元素,如 <html>, <a>, <body>, <table>。 而 xml 什么元素都可以自定义:如 <a>, <b>, <aabb>
  • 示例

    1
    2
    3
    4
    String html = "<html><body><p>Hello HTML</p></body></html>";

    Document doc = Jsoup.parse(html);
    Elements as= doc.getElementsByTag("p");

2、获取文档

  • 获取文档对象的方式有多种,常见的就是基于字符串,文件,网页地址。

    1
    2
    3
    4
    5
    6
    7
    8
    String html1 = "<html><body><p>Hello HTML</p></body></html>";
    Document doc1 = Jsoup.parse(html1);

    File f = new File("a.html");
    Document doc2 = Jsoup.parse(f, "utf-8");

    String url = "http://www.qianchia.com";
    Document doc3 = Jsoup.parse(new URL(url), 5000); // 超过 5 秒就报错

3、获取元素

  • 获取元素比较常见的几种方式:通过 id, 标签或者类名称获取。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // 通过 id 获取
    Element e = doc.getElementById("productName");

    // 通过标签获取
    Elements es = doc.getElementsByTag("a");

    // 通过类名称获取
    Elements es = doc.getElementsByClass("RightBox");

    // 通过属性获取
    Elements es = doc.getElementsByAttribute("name");

4、获取内容和文本

  • 获取内容和文本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Element e = doc.getElementById("d1");

    // 获取属性
    e.attr("id")

    // 获取所有属性
    e.attributes()

    // 获取id
    e.id()

    // 获取类名称
    e.className()

    // 获取所有类名称
    e.classNames()

    // 获取文本
    e.text()

    // 获取 html
    e.html()

    // 获取外 html
    e.outerHtml()

    // 获取标签信息
    e.tagName()

5、选择器语法

  • 在选择元素的时候,除了使用方法名如 getElementById 这样的外,还可以用选择器语法来选择。操作起来就像 jQuery了,比如 getElementById 就可以写成是 select("#id")

    1
    2
    3
    Elements es = doc.select("a");
    Elements es = doc.select("#logocover");
    Elements es = doc.select("[href]");

6、操作属性和内容

  • 操作属性和内容:Jsoup 除了可以解析 html/xml 外,还可以进行修改行为。

    1
    2
    3
    4
    Element e = doc.select("p").first();

    e.attr("class", "class1");
    e.appendText(" Hello JSoup");
文章目录
  1. 1. 前言
  2. 2. 1、简介
  3. 3. 2、获取文档
  4. 4. 3、获取元素
  5. 5. 4、获取内容和文本
  6. 6. 5、选择器语法
  7. 7. 6、操作属性和内容
隐藏目录