首页 文章 精选 留言 我的

精选列表

搜索[递归下降解析器],共10004篇文章
优秀的个人博客,低调大师

jsoup 1.22.2 发布,Java HTML 解析器

jsoup 1.22.2 现已发布,对库进行了多项修复和改进。它使遍历 DOM 时编辑 DOM 的操作更加可预测,使用更新的元素和更佳的文本边界更新了默认的 HTML 标签定义,并提高了解析和 HTTP 传输的可靠性。此版本还修复了清理、流解析、XML 文档类型处理和 Android 打包方面的一些特殊情况。 改进 扩展并明确了NodeTraversor在NodeVisitor.head()期间对就地 DOM 重写的支持。当前节点的编辑操作(如移除、替换和解包)现在能够以更可预测的方式恢复,同时遍历仍保持在原始根子树内。这使得编写 single-pass tree cleanup 和规范化访问器更加容易,例如在遍历 DOM 时展开展示元素或替换文本节点#2472 文档:明确了已配置的Cleaner实例可在并发线程间复用,并且共享Safelist实例在使用过程中不应被修改。#2473 更新了当前 HTML 元素的默认 HTML TagSet:新增了 dialog、search、picture 和 slot 标签;将 ins、del、button、audio、video 和 canvas 默认设为内联(Tag#isInline(),与规范中的表述保持一致);并通过新的 Tag.TextBoundary 选项,为控件和嵌入对象添加了可读的 Element.text() 边界。此举改善了代码美观度,并防止规范化文本将相邻单词合并在一起。#2493 错误修复 Android (R8/ProGuard):新增一条规则,当可选的re2j依赖项不存在时将其忽略。#2459 修复了 1.21.2 版本中的一个NodeTraversor回归问题,该问题会导致在head()期间移除或替换当前节点时,可能会重新访问被替换的节点并导致无限循环。遍历文档现已明确说明当前遍历过程中会访问哪些插入的节点。#2472 在字符集嗅探过程中,即使调用available()抛出IOException(如在 JDK 8 的HttpURLConnection中所见),解析操作也不会再失败。#2474 Cleaner在清理或验证文档时,不再将输入文档中的相对 URL 属性转换为绝对 URL。URL 规范化现在仅应用于清理后的输出,且Safelist.isSafeAttribute()方法不再产生副作用。#2475 当输入文档保留属性大小写时,Cleaner不再复制强制属性。现在,在经过清理的输出中,不区分大小写的源属性将被强制属性替换。#2476 如果配置了按请求设置的 SOCKS 代理,jsoup 现在会避免使用 JDK HttpClient,因为 JDK 会无提示地忽略该代理并尝试直接连接。此类请求现将回退至支持 SOCKS 的旧版 HttpURLConnection 传输机制。#2468 若未声明字符集,且初始 5 KB 的字符集检测在流解析开始前已完全读取并关闭输入流,Connection.Response.streamParser()和DataUtil.streamParser(Path, ...)可能会在处理小型输入时失败。#2483 在 XML 模式下,包含内部子集的文档类型声明(例如<!DOCTYPE root [<!ENTITY name "value">]>)现在能够正确地进行往返传输。子集仅作为原始文本保留;实体不会被展开,外部 DTD 也不会被加载。#2486 Build Changes 已将集成测试服务器从 Jetty 迁移到 Netty,能够持续支持最低 JDK 目标版本 (8)。#2491 更新说明:https://github.com/jhy/jsoup/releases/tag/jsoup-1.22.2

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

jsoup 1.21.2 发布,Java HTML 解析器

jsoup 1.21.2 现已发布,新增了对 HTTP/2 连接中自定义SSLContext的支持,并提升了属性中用户数据处理方式的一致性。此外,它还提升了 DOM 操作和片段解析的性能,并修复了流解析、遍历、克隆和并发读取中的一些边缘情况。 变化 已弃用的内部(但可见)方法Normalizer#normalize(String, bool)和Attribute#shouldCollapseAttribute(Document.OutputSettings)。这些将在未来的版本中删除。 已弃用Connection#sslSocketFactory(SSLSocketFactory),建议使用新的Connection#sslContext(SSLContext)。使用sslSocketFactory将强制使用旧HttpUrlConnection实现,该实现不支持 HTTP/2。#2370 改进 当进行 pretty-printing 时,如果有连续的文本节点(通过 DOM 操作),则它们之间的非重要空白将被折叠。#2349。 更新Connection.Response#statusMessage()为在使用HttpClient实现时返回一个简单的可记录字符串消息(例如“OK”),否则不会返回任何服务器设置的状态消息。#2356 Attributes#size()和Attributes#isEmpty()现在​​​​​​​将所有内部属性(例如用户数据)排除在其计数之外。这与属性的序列化输出和迭代器保持一致。#2369 添加Connection#sslContext(SSLContext)以向请求提供自定义 SSL (TLS) 上下文,同时支持HttpClient和旧版HttUrlConnection实现。#2370 针对 DOM 操作方法的性能优化,包括在多次移除元素的第一个子元素(element.child(0).remove()),以及使用Parser#parseBodyFragement()解析大量直接子元素时的情景。#2373。​​​​​​​ 错误修复 当从 InputStream 进行解析并且多字节字符恰好跨越缓冲区边界时,流将无法完全读取。#2353。 在NodeTraversor中,如果在head()调用期间删除了最后一个子元素,则父元素会被访问两次。#2355。 克隆具有 Attributes 对象的 Element 会向该克隆添加一个空的内部用户数据属性,这会导致Attributes#size()和Attributes#isEmpty()出现意外结果。#2356 在多线程应用程序中,多个线程同时调用同一元素Element#children()时,该方法生成内部子元素缓存(其子节点的筛选视图)时可能会发生竞争条件。由于 DOM 对象的并发读取应该是线程安全的,无需外部同步,因此该方法已更新为原子执行。#2366 格式错误的 HTML 可能会在 adoption agency 期间抛出 IndexOutOfBoundsException。#2377。 详情可查看:https://jsoup.org/news/release-1.21.2

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

jsoup 1.17.1 发布,Java HTML 解析器

jsoup 1.17.1 现已发布,支持request-level身份验证、属性名称和值源范围、stream( ) 可迭代支持以及大量其他改进和错误修复。jsoup 是一个用于处理 real-worldHTML 的 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

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

jsoup 1.16.1 发布,Java HTML 解析器

jsoup 1.16.1 现已发布。jsoup 是一个用于处理 real-worldHTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。 下载地址:https://jsoup.org/download 具体更新内容包括: Improvements 在Jsoup.connect(String url)中,原生支持在路径或查询字符串中包含 Unicode 字符的 URL,而无需由调用者进行转义。#1914 在没有父节点的节点上调用Node.remove()现在是不可行的,会出现验证错误。#1898 Bug Fixes 使 HTML Tree Builder 对AfterBody与AfterAfterBody的处理步骤与更新的 WHATWG 标准保持一致,以不弹出堆栈以关闭<body>或<html>元素。这可以防止错误地</html>关闭前面的结构。在这种情况下还添加了适当的错误消息输出。#1851 纠正对 ruby​​ 元素(<ruby>、<rp>、<rt>和<rtc>)的支持,以符合当前的规范。#1294 使用Node.before(Node)或Node.after(Node)时,如果传入节点是上下文节点的兄弟节点,则传入节点可能会插入到错误的相对位置。#1898 在Jsoup.connect(String url)中,如果输入的 URL 中有已经被%转义的组件,它们将再次被转义,导致抓取时出错。#1902 在跟踪输入源位置时,被培养的表格中的文本具有无效位置。#1927 如果Document.OutputSettings类被初始化,然后Entities.escape(String)被调用,则可能会由于类加载循环依赖而抛出 NPE。#1910 在 pretty-printing 时,如果一个块中的第一个内联Element或Comment前面有一个空白文本节点,它就不会被 wrap-indented。​​​​​​​#1906 在 pretty-printing 一个包含block tags的<pre>时,这些 tags缩进不正确。#1891 当 pretty-printing 嵌套的可内联块(例如<td>中的<p>)时,内部元素应该缩进。#1926 <br>tags 在 block tags 中时应该 wrap-indented(而在 inline tags 中时则不需要)。#1911 足够大的<textarea>的内容和未转义的 HTML closing tags 可能会被错误地解析为一个空节点。#1929 更新说明:https://github.com/jhy/jsoup/releases/tag/jsoup-1.16.1

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

jsoup 1.15.3 发布,Java HTML 解析器

jsoup 1.15.3 现已发布,包括针对潜在 XSS 攻击的安全修复,以及其他改进,包括更具描述性的验证错误消息。jsoup 是一个用于处理 real-worldHTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。 下载地址:https://jsoup.org/download 具体更新内容包括: 安全 修复了如果SafeList.preserveRelativeLinks启用,jsoup cleaner 可能会错误地清理精心制作的 XSS attempts 的问题。有关更多详细信息,可参阅安全公告。 改进 如果在原始解析中启用了源跟踪,Cleaner 将保留已清理元素的源位置。 从Validate输出的错误消息更具描述性。Exceptions 现在是ValidationExceptions(扩展了IllegalArgumentException)。堆栈跟踪不包括 Validate 类,以便更简单地看到异常的来源。常见的验证错误(包括格式错误的 URL 和空选择器结果)都有更明确的错误信息。 构建改进:在 jar 清单中添加了实现版本和相关字段。#1809 Bug 修复 DataUtil将从 InputStream 中错误地读取小于请求大小的读数。例如,当从分块的服务器响应中解析时,这会导致不正确的结果。#1807 详情可查看官方公告。

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

智能路由如何实现 90% 成本下降?

一、背景 随着大模型数量爆炸式增长,开发者面临一个经典问题:如何为每个任务选择最便宜且效果足够的模型?手动选择不可扩展,而简单规则(如“简单任务走小模型”)无法适应复杂多变的用户请求。 2025年,学术界和工业界开始系统研究LLM智能路由。其中,论文《Cost-Effective LLM Routing with Reinforcement Learning》(Chen et al., 2025)提出了一种基于强化学习的动态路由框架,实测在保持95%以上准确率的前提下,成本降低87%。 二、核心思想 传统路由依赖启发式规则(如关键词、长度),但无法处理模糊任务。该论文的核心贡献是: 质量预测器:训练一个小型模型,预测每个候选LLM在给定输入上的输出质量(分数0-100) 成本感知选择:在质量阈值内,选择成本最低的模型 在线学习:根据实际反馈(用户点赞、任务完成度)更新预测器 三、Token-Flow的工程实践 Token-Flow的智能路由模块借鉴了这一思想,并做了工程化改进: 实时延迟监控:除成本外,还考虑模型响应延迟 多目标优化:支持用户自定义约束(如“最大延迟2秒”) 降级策略:如果轻量模型质量低于阈值,自动升级到高性能模型 实测效果(基于10万次真实调用): 简单问答:92%走国产轻量模型(DeepSeek、智谱),成本降低96% 复杂推理:70%走GPT-4o/Claude,保证质量 综合成本降低:91.3% 四、开源生态与未来 目前已有多个开源路由项目(如RouteLLM、FrugalGPT),但它们在动态性、多目标优化上仍有局限。Token-Flow计划将其路由策略的核心算法部分开源,推动社区共建。 未来方向: 语义路由:基于任务嵌入向量而非规则 跨模态路由:文本/图像/视频模型统一调度 边缘路由:端侧小模型+云端大模型协同 五、讨论 智能路由正在成为大模型中间层的标准组件。它不仅降低了AI应用的成本门槛,也让“一人公司”能够用得起顶级模型。我们期待更多开源贡献者加入这个领域。 👉 欢迎讨论:你理想中的路由策略应该具备哪些能力?

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册