jsoup 1.17.1 现已发布,支持 request-level 身份验证、属性名称和值源范围、stream( ) 可迭代支持以及大量其他改进和错误修复。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。
下载地址:https://jsoup.org/download
具体更新内容包括:
改进
- Request-Level Authentication:在 Jsoup.connect() 中添加了对 request-level 身份验证的支持,从而启用对代理和服务器的身份验证。更多的。
- Elements DOM Mutators:在列表中,添加了对
Elements#set(int, Element)
、Elements#remove(int)
、Elements#remove(Object)
、Elements#clear()
、Elements#removeAll()
、Elements#retainAll()
、Elements#removeIf()
、Elements#replaceAll()
的直接支持。这些方法会更新原始 DOM 以及Elements
列表。更多的。 - Stream Interface:引入了
NodeIterator
类,使用 Iterator 接口进行高效节点树遍历。已添加 StreamElement#stream()
和Node#nodeStream()
方法,以实现流畅的节点遍历可组合流管道。更多的。 - XML OutputSettings :将
OutputSettings
语法更改为XML
时自动将 xhtmlEscapeMode
设置为默认值。 - is() Selector:添加了
:is(selector list)
pseudo-selector 来查找与选择器列表中的任何选择器匹配的元素。这增强了大型 ORed 选择器的可读性。更多的。 - JPMS Module Support:重新打包支持 native JPMS 模块的库。更多的。
- Source Position Fidelity:启用跟踪时提高源位置的保真度。现在可以通过
Range.isImplicit()
跟踪隐式创建或关闭的元素。更多的。 - Attribute Source Positions:当源跟踪打开时,启用属性名称和值的源位置。
Attribute#sourceRange()
提供范围。更多的。 - 虚拟线程:通过将内部
ConstrainableInputStream
替换为ControllableInputStream
,提高了 Java 21+ 虚拟线程下的性能。更多的。 - XML Mimetype Support:在
Jsoup.connect()
中扩展了 XML mimetype 支持,以包含任何 XML mimetype。更多的。
Bug 修复
- XML Data Nodes:修复了使用
XML
语法输出时解析为数据节点的 HTML 元素未正确发出为CDATA
节点的错误。更多的。 - Immediate Parent Selector:更正了 Immediate Parent selector
>
可以匹配根上下文元素上方的元素的错误。更多的。 - Empty Doctype :修复了
W3CDom
中如果 jsoup 输入文档包含空 doctype 则转换将失败的错误。doctype 现在被丢弃,转换继续。 - SVG Elements Cleaning:修复了清理包含 SVG 元素或其他具有保留大小写名称的外来元素的文档时的 incorrect nesting。更多的。
- Unknown Self-Closing Tags:在清理文档时保留输入中未知 self-closing tags 的输出样式。更多的。
Build Improvements
- Local Test Proxy:添加了用于代理集成测试的本地测试代理实现。更多的。
- HTTPS Request Tests:添加了使用本地自签证书的 HTTPS 请求支持测试。包括代理测试。更多的。
Changes
- Response BodyStream:
Connection.Response.bodyStream()
中返回的 InputStream现在是一个普通的BufferedInputStream
。查看更多。
详情可查看更新说明:https://github.com/jhy/jsoup/releases/tag/jsoup-1.17.1