jsoup 1.16.2 发布,Java HTML 解析器
jsoup 1.16.2 现已发布。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。
下载地址:https://jsoup.org/download
具体更新内容包括:
Improvements
- 通过添加基于成本的查询规划器,优化了复杂 CSS 选择器的性能。评估器按其相对执行成本排序,并按成本从低到高的顺序执行。这通过确保在更复杂的评估(例如属性正则表达式或使用 :has 进行深度子扫描)之前进行更简单的评估(例如标签名称匹配)来加速匹配过程。
- 添加了对
<svg>
和<math>
标签(及其子标签)的支持。这包括标签命名空间以及适用标签和属性的大小写保留。#2008
- 在
W3CDom
中将 jsoup 文档转换为 W3C 文档时,根据 HTML5 规范,HTML 文档将默认放置在http://www.w3.org/1999/xhtml
命名空间中。这可以通过设置W3CDom#namespaceAware(boolean false)
来控制。#1848
- 通过备忘录化之前的评估,优化了结构评估器的速度。特别是
~
(any preceding sibling)和:nth-of-type
选择器得到了改进。#1956
- 调整了元素
nextElementSibling
、previousElementSibling
、firstElementSibling
、lastElementSibling
、firstElementChild
和 lastElementChild 的性能。他们现在在子节点列表中进行 filter/skip,而无需分配和扫描完整的元素过滤列表。 - 优化了之前调用
Element.children()
的内部方法,改为使用 filter/skip 子节点列表访问器,从而减少新的元素列表分配。 - 调整了解析
:pseudo
选择器的性能。 - 使用
:empty
伪选择器时,空白文本节点现在被视为空。以前,包含任何空格的元素不被视为空。#1976
- 在表单中,
<input type="image">
应从Element.formData()
中排除(因此也排除在表单提交之外)。#2010
- 在
Safelist
中,将isSafeTag()
和isSafeAttribute()
变为 public 方法,以实现扩展性。#1780
Bug Fixes
- Bugfix:
form
元素和 empty 元素(例如img
)的属性没有去重。#1950
- 如果是从克隆中克隆了
Document.OutputSettings
,则使用时会抛出 NPE。#1964
- 在
Jsoup.connect(String url)
中,包含 %2B 的 URL 路径被错误地重新编码为 '+',或者 '+' 被重新编码为 ' '。通过恢复到以前不编码提供的路径的行为(除了标准化为 ASCII)来修复。#1952
- 在
Jsoup.connect(String url)
中,包含补充字符(例如表情符号)的字符串未正确进行 URL 转义。 - 在
Jsoup.connect(String url)
中,ConstrainableInputStream 将在读取正文时清除线程中断。这阻止了调用者生成线程、在一段时间内运行多个请求、然后在中断该线程后加入该线程。#1991
- 跟踪 HTML 源位置时, 无法正确跟踪
H1
...H6
元素的 closing tags。#1987
- 在
Jsoup.connect()
中,DELETE
方法请求不支持请求正文。#1972
- 在嵌套极深的元素上调用
Element.cssSelector()
时,可能出现StackOverflowError
。此外,在运行查询时可能会出现StackOverflowError
。#2001
- 在
empty()
之后将节点追加回其原始Element
,会产生索引越界异常。此外,现在被删除的子节点的父节点已被清除,从而将它们与原始父节点完全分离。#2013
- 在
Connection
添加 headers 时,该值可能被假定为错误解码的ISO_8859_1
字符串,并重新编码为UTF-8
。现在该值保持不变。
Changes
- 删除了以前已被弃用的
Document.normalise()
、Element.forEach(org.jsoup.helper.Consumer<>)
、Node.forEach(org.jsoup.helper.Consumer<>)
和org.jsoup.helper.Consumer
接口。 - 以前的 compatibility shim
org.jsoup.UncheckedIOException
已被弃用,取而代之的是现在支持的java.io.UncheckedIOException
。#1989
- 由于启用和未启用脚本模式的解析器之间不兼容,阻止将
noscript
tags 添加到安全列表。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Wow 2.6.12 发布,API 写性能轻松超 2W TPS
基于 DDD、EventSourcing 的现代响应式 CQRS 架构微服务开发框架 领域驱动|事件驱动|测试驱动|声明式设计|响应式编程|命令查询职责分离|事件溯源 更新内容 🎉 🎉 🎉 依赖: 更新org.springframework.boot:spring-boot-dependencies版本v3.1.5 依赖: 更新com.google.guava:guava版本v32.1.3-jre 依赖: 更新io.swagger.core.v3:swagger-core-jakarta版本v2.2.17 依赖: 更新io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom版本v1.31.0 依赖: 更新org.jetbrains.dokka版本v1.9.10 修复: 路由路径参数(tenantId/id)冗余定义 文档: 新增 Example API 性能测试报告(Example) 性能测试报告 加入购物车 WaitStrategy:SENT WaitStrategy:PROCESSED 下单 Wai...
- 下一篇
Ant Design 5.10.2 发布,企业级 UI 设计语言和 React 实现
An Design 5.10.2 现已发布,主要变化如下: Layout 支持自动检测hasSider以防止在 SSR 场景下的闪烁问题。#45361 修复 FloatButton.BackTop 组件显示findDOMNode is deprecated in StrictMode警告的问题。#45390 修复 ColorPicker 不支持id和data-*属性的问题。#45413 修复 Table 当column.showSorterTooltip是一个对象时排序 tooltip 不显示的问题。#45403 修复 Forminline模式在小屏幕发生元素重叠的问题。#45340 移除 Upload.Dragger 中重复的disabled样式。#45446 TypeScript 修复 Tablepagination.positionTS 定义不支持'none'的问题。#45398 RTL 修复 Notification 组件在rtl模式下边缘间距错误的问题。#45386 更新说明:https://github.com/ant-design/ant-design/releases/...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7,CentOS8安装Elasticsearch6.8.6