jsoup 1.16.1 现已发布。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。
下载地址:https://jsoup.org/download
具体更新内容包括:
Improvements
- 在
Jsoup.connect(String url)
中,原生支持在路径或查询字符串中包含 Unicode 字符的 URL,而无需由调用者进行转义。#1914 - 在没有父节点的节点上调用
Node.remove()
现在是不可行的,会出现验证错误。#1898
Bug Fixes
- 使 HTML Tree Builder 对
AfterBody
与AfterAfterBody
的处理步骤与更新的 WHATWG 标准保持一致,以不弹出堆栈以关闭<body>
或<html>
元素。这可以防止错误地</html>
关闭前面的结构。在这种情况下还添加了适当的错误消息输出。#1851 - 纠正对 ruby 元素(
<ruby>
、<rp>
、<rt>
和<rtc>
)的支持,以符合当前的规范。#1294 - 使用
Node.before(Node)
或Node.after(Node)
时,如果传入节点是上下文节点的兄弟节点,则传入节点可能会插入到错误的相对位置。#1898 - 在
Jsoup.connect(String url)
中,如果输入的 URL 中有已经被%
转义的组件,它们将再次被转义,导致抓取时出错。#1902 - 在跟踪输入源位置时,被培养的表格中的文本具有无效位置。#1927
- 如果
Document.OutputSettings
类被初始化,然后Entities.escape(String)
被调用,则可能会由于类加载循环依赖而抛出 NPE。#1910 - 在 pretty-printing 时,如果一个块中的第一个内联
Element
或Comment
前面有一个空白文本节点,它就不会被 wrap-indented。#1906 - 在 pretty-printing 一个包含 block tags 的
<pre>
时,这些 tags 缩进不正确。#1891 - 当 pretty-printing 嵌套的可内联块(例如
<td>
中的<p>
)时,内部元素应该缩进。#1926 <br>
tags 在 block tags 中时应该 wrap-indented(而在 inline tags 中时则不需要)。#1911- 足够大的
<textarea>
的内容和未转义的 HTML closing tags 可能会被错误地解析为一个空节点。#1929
更新说明:https://github.com/jhy/jsoup/releases/tag/jsoup-1.16.1