以下表格整理了 jsoup-1.13.1 最常用的核心 API,按功能模块分类,聚焦核心类 / 方法和中文用法说明,覆盖解析、DOM 操作、选择器、属性 / 文本处理等核心场景:
- jsoup 核心入口是
Jsoup类,主要用于解析 HTML(字符串 / 文件 / 远程 URL),返回Document对象作为操作入口; - 元素查询优先使用
select()(CSS 选择器),精准定位用getElementById(),属性 / 文本操作通过Element类的attr()/text()/html()完成; - 遍历元素可通过
parent()/children()/siblingElements()实现,表单处理专用val()方法,输出格式化可通过outputSettings()配置。
注:以下为最常用 API,jsoup-1.13.1 的完整 API 可参考官方文档,核心逻辑与上述一致,仅部分边缘方法未列入(如 XML解析、HTTP 请求高级配置等)。
| 表头 | 表头 | 表头 |
|---|---|---|
| 功能分类 | 核心类 / 方法 | 中文用法说明 |
| 文档解析 | Jsoup.parse(String html) | 将 HTML 字符串解析为 Document 对象(jsoup 的核心文档对象),自动修复不规范的 HTML 结构 |
| 文档解析 | Jsoup.parse(File in, String charset) | 从本地文件解析 HTML,指定字符编码(如 UTF-8),返回 Document 对象 |
| 文档解析 | Jsoup.connect(String url).get() | 发送 HTTP GET 请求获取远程网页,解析为 Document 对象(支持设置请求头、超时等) |
| 文档解析 | Jsoup.parseBodyFragment(String html) | 仅解析 HTML 片段(如内的内容),返回 Document 对象,忽略/等根标签 |
| 选择器查询 | Document.select(String cssQuery) | 按 CSS 选择器语法查询元素,返回 Elements(元素集合),如select("div.content") |
| 选择器查询 | Element.selectFirst(String cssQuery) | 按 CSS 选择器查询第一个匹配的元素,返回 Element(避免遍历集合) |
| 元素定位 | Element.getElementById(String id) | 根据 id 属性精准定位单个元素,等价于select("#id"),效率更高 |
| 元素定位 | Element.getElementsByTag(String tag) | 根据标签名获取子元素集合,如getElementsByTag("a")获取所有链接 |
| 元素定位 | Element.getElementsByClass(String className) | 根据 class 属性获取子元素集合,等价于select(".className") |
| 文本处理 | Element.text() | 获取元素内的纯文本内容(剔除所有 HTML 标签),包含所有子元素的文本 |
| 文本处理 | Element.ownText() | 仅获取当前元素自身的纯文本(不包含子元素的文本) |
| 文本处理 | Element.text(String text) | 设置元素的纯文本内容(覆盖原有内容,自动转义特殊字符如 <、>) |
| HTML 处理 | Element.html() | 获取元素内的 HTML 内容(包含子元素的标签) |
| HTML 处理 | Element.html(String html) | 设置元素的 HTML 内容(覆盖原有内容,不转义标签,直接渲染) |
| HTML 处理 | Element.outerHtml() | 获取当前元素及其内部所有内容的完整 HTML(包含自身标签) |
| 属性操作 | Element.attr(String key) | 获取元素指定属性的值,如attr("href")获取链接地址 |
| 属性操作 | Element.attr(String key, String value) | 设置元素指定属性的值,如attr("src", "new.jpg") |
| 属性操作 | Element.hasAttr(String key) | 判断元素是否包含指定属性(返回 boolean) |
| 属性操作 | Element.removeAttr(String key) | 移除元素的指定属性 |
| 元素遍历 | Element.parent() | 获取当前元素的父元素 |
| 元素遍历 | Element.children() | 获取当前元素的所有直接子元素(返回 Elements) |
| 元素遍历 | Element.siblingElements() | 获取当前元素的所有同级元素(排除自身) |
| 元素遍历 | Element.nextElementSibling() | 获取当前元素的下一个同级元素 |
| 元素遍历 | Element.previousElementSibling() | 获取当前元素的上一个同级元素 |
| 表单处理 | Element.val() | 获取表单元素(input/select/textarea)的 value 值 |
| 表单处理 | Element.val(String value) | 设置表单元素的 value 值 |
| 文档信息 | Document.title() | 获取 HTML 文档的 |
| 文档信息 | Document.title(String title) | 设置 HTML 文档的 |
| 输出格式化 | Document.outputSettings() | 获取输出设置对象,可配置 HTML 缩进、字符编码、是否格式化等 |
| 输出格式化 | Element.toString() | 将元素转换为格式化后的 HTML 字符串 |