jsoup 1.10.2 发布了,该版本带来了更快的启动时间,扩展 DOM 树的遍历,提升了 HTTP 兼容性以及修复了一些 bug。
详情包括:
Improvements
-
Improved startup time, particularly on Android, by reducing garbage generation and CPU execution time when loading the HTML entity files. About 1.72x faster in this area.
-
Added Element.is(query) to check if an element matches this CSS query.
-
Added new methods to Elements: next(query), nextAll(query), prev(query), prevAll(query) to select next and previous element siblings from a current selection, with optional selectors.
-
Added Node.root() to get the topmost ancestor of a Node.
-
Added the new selector :containsData(), to find elements that hold data, like script and style tags.
-
Changed Jsoup.isValid(bodyHtml) to validate that the input contains only body HTML that is safe according to the whitelist, and does not include HTML errors. And in the Jsoup.Cleaner.isValid(Document) method, make sure the doc only includes body HTML.
-
In Whitelists, validate that a removed protocol exists before removing said protocol.
-
Allow the Jsoup.Connect thread to be interrupted when reading the input stream; helps when reading from a long stream of data that doesn't read timeout.
-
Jsoup.Connect now uses a desktop user agent by default. Many developers were getting caught by not specifying the user agent, and sending the default Java. That causes many servers to return different content than what they would to a desktop browser, and what the developer was expecting.
-
Increased the default connect/read timeout in Jsoup.Connect to 30 seconds.
-
Jsoup.Connect now detects if a header value is actually in UTF-8 vs the HTTP spec of ISO-8859, and converts the header value appropriately. This improves compatibility with servers that are configured incorrectly.
Fixes
-
Bugfix: in Jsoup.Connect, URLs containing non-URL-safe characters were not encoded to URL safe correctly.
-
Bugfix: a "SYSTEM" flag in doctype tags would be incorrectly removed.
-
Bugfix: removing attributes from an Element with removeAttr() would cause a ConcurrentModificationException.
-
Bugfix: the contents of Comment nodes were not returned by Element.data()
-
Bugfix: if source checked out on Windows with git autocrlf=true, Entities.load would fail because of the r char.
下载地址:https://jsoup.org/download