使用Jsoup来解析HTML
1. 概要
Jsoup是一个开源Java库,主要用于从HTML提取数据。允许您操作和输出HTML,它有稳定的开发线、优秀的文档和流畅灵活的API,Jsoup还可以用于解析和构建XML。
在本教程中,我们将使用Spring博客演示一个抓取案例,它演示了jsoup的几个特性:
- 加载:抓取和解析HTML到一个文档
- 筛选:选择所需的数据到元素中并遍历它
- 提取:获取节点的属性、文本和HTML
- 修改:添加/编辑/删除节点并编辑它们的属性
2. Maven 依赖
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
3. Jsoup 简单使用
Jsoup加载页面HTML并构建相应的DOM树。这个树的工作方式与浏览器中的DOM相同,提供了类似于jQuery和普通JavaScript的方法来选择、遍历、操作文本/HTML/属性以及添加/删除元素。
如果您熟悉客户端选择器和DOM遍历/操作,那么您会发现jsoup非常简单
Document doc = Jsoup.connect("http://example.com").get();
doc.select("p").forEach(System.out::println);
值得注意的是,jsoup只解释HTML—它不解释JavaScript。因此,在启用javascript的浏览器中加载页面后通常会发生的对DOM的更改在jsoup中不会看到
4. 加载页面
加载阶段包括将HTML抓取并解析为文档。与现代浏览器一样,Jsoup保证解析任何HTM