来源:OSCHINA 时间:2023-02-21 07:20:39
jsoup 1.15.4 现已发布,其中包括了一些改进,尤其是在 pretty-printing HTML 时;以及一些错误的修正。jsoup 是一个用于处理 real-worldHTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。
下载地址:https://jsoup.org/download
具体更新内容包括:
(相关资料图)
Improvements
添加了转义 CSS 选择器(tag、ID、classes)以匹配不遵循常规 CSS 语法的元素的功能。例如,要按类名进行匹配,可以使用
document.select("p.one\\.two");
#838
pretty-printing 时,将
标签后面的文本换行。#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()]
,可以方便地检索包含文档中元素的
List
。
增加了一个新方法[Document.expectForm()]
,找到第一个匹配的[FormElement]
,或者blow up trying。
Bug 修复
包含[and
]
等字符的 URL 未正确转义,并且在获取时会抛出一个MalformedURLException
错误。#1873
[Element.cssSelector()]
将为标签名称、ID 或类名称需要转义的元素创建无效的选择器(例如,如果类名称包含.
或:
)。#1742
[Element.text()]
在 block 和 inline 元素之间应该有一个空格。#1877
如果一个[Node]
或[Element]
被自身替换,则该节点将被错误地孤立。#1843
在[newRequest()]
中,之前请求的表单数据被复制到新的请求中,导致执行多步表单提交时表单数据堆积,或者数据错误发送到后面的请求。现在,[newRequest()]
只复制与会话相关的设置(cookie、代理设置、用户代理等),而不是请求数据或正文。#1778
修复了[Safelist.removeAttributes()]
中的问题,当使用:all
pseudo-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
Dashlane 密码管理器开源其 Android 和 iOS 应用程序
ip2region 2.11.1 发布 - 开源 IP 数据管理框架和定位库