jsoup 1.18.1 发布,Java HTML 解析器
jsoup 1.18.1 现已发布,新的流解析器提供了混合 DOM + SAX 事件驱动的解析接口、请求进度跟踪和许多其他改进。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。
下载地址:https://jsoup.org/download
具体更新内容包括:
改进
- Stream Parser:
StreamParser
对输入进行渐进式解析。对于 URL 请求,可通过Connection.Response.streamParser()
获得。每个Element
完成时,都会通过Stream
或Iterator
interface 输出。返回的元素将包括其所有子元素以及(空的)下一个同级元素(如果适用)。元素(或其子元素)可能会在解析过程中从 DOM 中删除,例如为了节省内存,提供一种机制来解析输入文档,否则该文档会过于庞大而无法容纳在内存中,但仍然为文档及其元素提供 DOM 接口。此外,解析器还提供了一个selectFirst(String query)
/selectNext(String query)
,它将运行解析器直到找到匹配项,此时解析将暂停。可以通过另一个select()
调用或通过stream()
或iterator()
方法恢复解析。#2096(附示例) - Download Progress:添加了一个 Response
Progress
事件接口,用于报告下载进度和 URL(并解析)。通过Connection.onResponseProgress()
设置。会话和单个连接级别均受支持。#2164、#656 - 添加了
Path
accepting parse 方法:Jsoup.parse(Path)
,Jsoup.parse(path, charsetName, baseUri, parser)
等。#2055 - 更新了
button
标签配置,在Element.text()
方法中的多个按钮元素之间加入了空格。#2105 - 在 namespace Selector 中增加了对
ns|*
all 元素的支持。#1811 - 在序列化过程中规范化属性名称时,无效字符现在将被替换为
_
, 而不是被删除。这将使处理过程更清晰,并且通常可以防止无效属性名称被意外强制转换。#2143
变化
Bug 修复
- 跟踪源位置时,如果第一个节点是 TextNode,则其位置被错误设置为
-1.
#2106 - 当连接(或重定向)到路径中包含诸如
{
,}
之类的字符的 URL 时,将引发格式错误的 URL 异常(如果在开发中),或者 URL 可能无法正确转义(如果在生产中)。URL 编码过程已得到改进,可以正确处理这些字符。#2142 - 在使用带有自定义输出文档的
W3CDom
时,会引发空指针异常。 #2114 - 使用同级组合器(例如:
h1:has(+h2)
)时,:has()
选择器无法正确匹配。# 2137 - 由于错误的短路,
:empty
选择器错误地匹配了以空白文本节点开头、后跟非空节点的元素。# 2130 Element.cssSelector()
在为类名中包含(
或[
的元素构建选择器时,会失败并显示“Did not find balanced marker” 。并且带有这些字符转义的选择器不会按预期匹配。#2146- 更新了
Entities.escape(string)
,使转义文本适用于文本节点和属性(以前仅适用于文本节点)。这不会影响Element.html()
输出,它会根据是用于文本数据还是引用属性正确应用最小转义。#1278 - Fuzz:在规范化 regex 中解析精心设计的
<base href>
URL 时可能会发生 Stack Overflow 异常。 #2165

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
loveqq-framewoek 1.0.2 发布,比 Spring 更强大的条件注解推断
本次更新: 新增: loveqq-boot-starter-mail,整合 java mail 新增:loveqq-boot-starter-logback,整合 logback 新增:loveqq-cache,支持注解式缓存配置,默认提供ConcurrentHashMap 实现 新增:loveqq-cache-redis,整合 redisson 缓存支持 新增:loveqq-boot-starter-netty,整合 reactor-netty 作为 web 服务器,同时支持过滤器、拦截器配置;同时兼容命令式、响应式编程规范 优化:loveqq-boot-starter-datasource,新增动态数据源支持,druid 监控自动配置 loveqq-framework 的前世今生 loveqq-framework 前身是 kfyty-framework 而 kfyty-framework 前身是 kfyty-utils 而 kfyty-utils 前身是 mybatis-demo     是的,刚开始仅仅是因为...
- 下一篇
开源代码编辑器 Zed 发布原生 Linux 版本
Rust 开源代码编辑器 Zed 发布了原生支持 Linux 的版本。 在 Linux 上安装 Zed 的命令: curl https://zed.dev/install.sh | sh 据介绍,Linux 上的 Zed 正在使用 Vulkan API 进行 GPU 加速。它同时支持 Wayland 和 X11 会话,到目前为止,Zed 团队开发重心主要集中在 Ubuntu 下的测试。 详细信息查看Zed.dev。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8安装Docker,最新的服务器搭配容器使用