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 ParserStreamParser对输入进行渐进式解析。对于 URL 请求,可通过Connection.Response.streamParser()获得。每个Element完成时,都会通过StreamIteratorinterface 输出。返回的元素将包括其所有子元素以及(空的)下一个同级元素(如果适用)。元素(或其子元素)可能会在解析过程中从 DOM 中删除,例如为了节省内存,提供一种机制来解析输入文档,否则该文档会过于庞大而无法容纳在内存中,但仍然为文档及其元素提供 DOM 接口。此外,解析器还提供了一个selectFirst(String query)selectNext(String query),它将运行解析器直到找到匹配项,此时解析将暂停。可以通过另一个select()调用或通过stream()iterator()方法恢复解析。#2096(附示例)
  • Download Progress:添加了一个 ResponseProgress事件接口,用于报告下载进度和 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

变化

  • 删除了之前废弃的内部类和方法。#2094
  • Build change:已构建 jar 的 OSGi 清单不再 imports itself。#2158

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

更新公告:https://jsoup.org/news/release-1.18.1


相關推薦

2022-08-25

jsoup 1.15.3 现已发布,包括针对潜在 XSS 攻击的安全修复,以及其他改进,包括更具描述性的验证错误消息。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于

2023-12-31

jsoup 1.17.2 现已发布。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。 下载地址:https://jsoup.org/download 具体更新内容包括: 改进 Attrib

2023-10-22

,相约开源PHP办公室,我们一起聊 AI!>>> jsoup 1.16.2 现已发布。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。 下载地址:https://jsoup.org/

2023-05-06

jsoup 1.16.1 现已发布。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。 下载地址:https://jsoup.org/download 具体更新内容包括: Improvements

2023-02-21

jsoup 1.15.4 现已发布,其中包括了一些改进,尤其是在 pretty-printing HTML 时;以及一些错误的修正。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作

2023-11-28

jsoup 1.17.1 现已发布,支持 request-level 身份验证、属性名称和值源范围、stream( ) 可迭代支持以及大量其他改进和错误修复。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一

2023-03-06

Pandoc 3.1.1 发布了,Pandoc 是一个通用标记转换 Haskell 库,用于从一种标记格式转换为另一种,同时也是一个使用该库的命令行工具,它可以转换 28 种标记格式。 此版本带来如下更改: TSV 阅读器:不将制表符当作空格 ( #8661 )

2023-07-09

YMP 是一个非常简单、易用的轻量级 Java 应用开发框架,涵盖 AOP、IoC、WebMVC、ORM、Validation、Plugin、Serv、Cache 等特性,主要技术特点: 采用组件化、模块方式打包,可按需装配,灵活可扩展; 采用微内核实现 AutoScan、AOP、

2023-02-13

Fastcms 是基于 SpringBoot 前后端分离技术,且具有插件化架构的 CMS 系统,系统具有高扩展性,易维护性,可以快速搭建网站,微信小程序,是开发微信营销插件的基石 Fastcms 是真正意义上的插件化开源项目,支付,搜索,订单催

2022-10-27

目前PHP8.2已经进入RC阶段,按计划还有一个月就会发布正式版。而PHP8.3的决议也早已开始推进了。 本文为大家介绍一个最新通过的决议,也是PHP8.3的第一个决议:内置JSON验证函数。 这项决议在2022-08-14发起,2022-10-07 投票完成

2023-07-11

持从项目外部加载源代码来生成字段注释 (包括标准规范发布的 jar 包)。 支持生成多种格式文档:Markdown、HTML5、Asciidoctor、Postman collection、Open Api 3.0+。 轻易实现在 Spring Boot 服务上在线查看静态 HTML5 api 文档。 开放文档数据

2022-10-16

为 Apache2.0 开源协议; 2、版本升级:依赖版本升级,如jsoup、htmlunit、selenium等; 3、代码重构:优化代码结构,提升系统可维护性; 简介 XXL-CRAWLER 是一个分布式爬虫框架。一行代码开发一个分布式爬虫,拥有"多线程、异步

2022-07-06

OpenAPI Generator v6.0.1 现已发布。OpenAPI Generator 可用于在给定 OpenAPI 规范(v2, v3)的情况下自动生成 API 客户端库、server stubs、文档以及配置。 v6.0.1 是一个包含增强功能的补丁版本,修复了涵盖 20 种编程语言的错误。有关更改

2022-09-09

feilong 3.2.1 发布了,让Java开发更简便的工具库 让你从大量重复的底层代码中脱身,提高开发效率; 让你的代码更简炼,易写、易读、易于维护; 文档地址: http://feilong-core.mydoc.io/ maven 依赖配置: <dependency> <groupI