jsoup 1.15.4 现已发布,其中包括了一些改进,尤其是在 pretty-printing HTML 时;以及一些错误的修正。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。
下载地址:https://jsoup.org/download
具体更新内容包括:
Improvements
-
添加了转义 CSS 选择器(tag、ID、classes)以匹配不遵循常规 CSS 语法的元素的功能。例如,要按类名
<p class="one.two">进行匹配,可以使用document.select("p.one\\.two");#838 -
pretty-printing 时,将
<br>标签后面的文本换行。#1858 -
pretty-printing 时,规范化自定义标签中 self-closing 标签后面的换行符。#1852
-
pretty-printing 时,折叠 block 和 inline 标签之间的非重要空白。#1802
-
在
[Element.forEach()]和[Node.forEachNode()]中,使用java.util.function.Consumer而不是以前的 Android ompatibility shim [org.jsoup.helper.Consumer]。后者已被弃用。#1870 -
添加了一个新方法
[Document.forms()],可以方便地检索包含文档中<form>元素的List<FormElement>。 -
增加了一个新方法
[Document.expectForm()],找到第一个匹配的[FormElement],或者 blow up trying。
Bug 修复
-
包含
[and <code>]等字符的 URL 未正确转义,并且在获取时会抛出一个MalformedURLException错误。#1873 -
[Element.cssSelector()]将为标签名称、ID 或类名称需要转义的元素创建无效的选择器(例如,如果类名称包含.或:)。#1742 -
[Element.text()]在 block 和 inline 元素之间应该有一个空格。#1877 -
如果一个
[Node]或[Element]被自身替换,则该节点将被错误地孤立。#1843 -
在
[newRequest()]中,之前请求的表单数据被复制到新的请求中,导致执行多步表单提交时表单数据堆积,或者数据错误发送到后面的请求。现在,[newRequest()]只复制与会话相关的设置(cookie、代理设置、用户代理等),而不是请求数据或正文。#1778 -
修复了
[Safelist.removeAttributes()]中的问题,当使用:allpseudo-attribute 时可能抛出一个ConcurrentModificationException。 -
给定极深嵌套的 HTML,
[Element]其中的许多方法可能会由于过多的递归而抛出StackOverflowError。即:#data()、#hasText()、#parents()和#wrap(html)。#1864
Changes
- 弃用了未使用的
[Document.normalise()]方法。规范化发生在 HTML tree 构建过程中,不再作为一个独立的阶段。
更新说明:https://github.com/jhy/jsoup/releases/tag/jsoup-1.15.4




还没有评论,来说两句吧...