您的位置:首页 > IT > 正文

jsoup 1.15.4 发布,Java HTML 解析器

来源: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()]中的问题,当使用: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

相关文章