侧边栏壁纸
  • 累计撰写 49 篇文章
  • 累计创建 23 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Jsoup 简单使用

阿砖
2024-05-24 / 0 评论 / 0 点赞 / 93 阅读 / 4217 字

Jsoup 是一个Java库,用于解析HTML文件,包括从一个URL、文件或字符串中提取和操作数据。它使用DOM、CSS和类似于jQuery的方法来提取和操作数据。

下面是一个简单的Jsoup使用教程,介绍了一些基本用法。

1. 添加Jsoup依赖

首先,你需要在项目中添加Jsoup的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖:

<dependencies>
   <dependency>
       <groupId>org.jsoup</groupId>
       <artifactId>jsoup</artifactId>
       <version>1.13.1</version>
   </dependency>
</dependencies>

2. 从URL加载HTML

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupExample {

    public static void main(String[] args) throws IOException {

        String url = "http://example.com/";
        Document doc = Jsoup.connect(url).get();
        System.out.println(doc.title());

    }

}

这段代码从指定的URL加载HTML,并打印出页面的标题。

3. 解析字符串中的HTML

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class JsoupExample {

    public static void main(String[] args) {
        String html = "<html><head><title>First parse</title></head>"
                    + "<body><p>Parsed HTML into a doc.</p></body></html>";
        Document doc = Jsoup.parse(html);
        System.out.println(doc.title());

    }

}

这段代码解析一个HTML字符串,并打印出标题。

4. 提取元素

使用选择器语法来提取和操作数据。

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

public class JsoupExample {

    public static void main(String[] args) throws IOException {

        String url = "http://example.com/";
        Document doc = Jsoup.connect(url).get();
        // 使用CSS选择器提取数据
        Elements links = doc.select("a[href]"); // 所有带有href属性的a元素
        for(Element link : links) {
            System.out.println("Link: " + link.attr("href"));
            System.out.println("Text: " + link.text());
        }

    }

}

5. 操作元素

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

public class JsoupExample {

    public static void main(String[] args) {

        String html = "<div><p>Lorem ipsum.</p></div>";
        Document doc = Jsoup.parse(html);
        Element div = doc.select("div").first();
        div.append("<p>More text.</p>");
        System.out.println(doc.html());

    }

}

这段代码在第一个<div>元素中添加了一个新的段落。

6. 清理HTML

Jsoup还可以用来清理HTML,移除不安全的标签,以防止跨站脚本攻击(XSS)。

import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist;
import org.jsoup.nodes.Document;

public class JsoupExample {

    public static void main(String[] args) {

        String unsafeHtml = "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";
        String safeHtml = Jsoup.clean(unsafeHtml, Whitelist.basic());
        System.out.println(safeHtml);

    }

}

以上是Jsoup的一些基本用法。当然,Jsoup的功能远不止这些,你可以查阅官方文档来了解更多高级特性和用法。

0

评论区