java 中开源的html解析库Jsoup 简单例子

下面是一个使用Jsoup库解析HTML的简单Java例子。这个例子展示了如何使用Jsoup从一个HTML字符串中提取数据。

首先,确保你已经将Jsoup作为依赖项添加到你的项目中。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖:

复制代码
<dependencies>
    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.14.3</version> <!-- 请检查最新版本 -->
    </dependency>
</dependencies>

然后,你可以使用以下Java代码来解析HTML:

复制代码
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) {
        String html = "<html><head><title>Sample Title</title></head>"
                + "<body><p>Sample Content</p><div class='links'><a href='https://www.example1.com'>Example1</a>"
                + "<a href='https://www.example2.com'>Example2</a></div></body></html>";

        Document doc = Jsoup.parse(html);

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

        // 获取所有链接
        Elements links = doc.select("a[href]");
        for (Element link : links) {
            System.out.println("Link: " + link.attr("href"));
            System.out.println("Text: " + link.text());
        }

        // 获取具有特定类的元素
        Elements divLinks = doc.select("div.links");
        for (Element div : divLinks) {
            System.out.println("Div Class: " + div.className());
            // 可以进一步操作div元素
        }
    }
}

在这个例子中,我们首先创建了一个包含HTML内容的字符串。然后,我们使用Jsoup.parse()方法来解析这个字符串,并得到了一个Document对象,它可以代表整个HTML文档。

接着,我们使用Document对象的title()方法来获取文档的标题。使用select()方法,我们可以通过CSS选择器来选择和提取特定的元素。在这个例子中,我们提取了所有<a>标签的href属性和文本内容,以及具有links类的<div>标签。

这个例子展示了Jsoup的基本用法,包括HTML解析、选择元素和提取属性。Jsoup还有很多其他功能,比如处理实时的HTML文档、修改DOM结构、清理HTML等。

相关推荐
pnoker30 分钟前
IoT DC3 参与指南:文档、Demo、CLI 与贡献路径
物联网·开源·开源社区·agpl·贡献指南
程序员黎剑33 分钟前
Spring-Bean生命周期-构造器访问Autowired字段为null
java·后端·spring
古法安卓1 小时前
Android-重启流程源码解析
android·java·android studio
清水白石0081 小时前
Python 类型设计深度解析:TypedDict 能否替代 dataclass?从 JSON 数据边界到 API 设计的最佳实践
java·python·json
晊晌_h1 小时前
嵌入式从0到精通——线程
java·开发语言·jvm
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(57):MemSearch-o1——从查询词元生长证据,重组 Deep Search 记忆路径
论文阅读·人工智能·学习·开源·github
一木 之林1 小时前
五、C++ 新特性、关键字与编译原理(进阶)(二)
java·开发语言·c++
xy34531 小时前
Axure9.0 中继器遮罩的核心应用场景(精准适配列表交互)
前端·ui·html·原型·产品设计·axure9.0
洋不写bug2 小时前
绕过权限检查,访问修改私有属性,反射,枚举,lambda
java·枚举·lambda·反射
evans在进步2 小时前
Java 常用设计模式入门:建造者、工厂、单例、外观与代理
java·python·设计模式