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
  •  调整了元素nextElementSiblingpreviousElementSiblingfirstElementSiblinglastElementSiblingfirstElementChild和 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 shimorg.jsoup.UncheckedIOException已被弃用,取而代之的是现在支持的java.io.UncheckedIOException#1989
  • 由于启用和未启用脚本模式的解析器之间不兼容,阻止将noscripttags 添加到安全列表。

更新说明:https://github.com/jhy/jsoup/releases/tag/jsoup-1.16.2

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/262727/jsoup-1-16-2-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。