jsoup 1.16.2 發布,Java HTML 解析器

來源: OSCHINA
2023-10-21 10:19:12

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
  •  調整了元素nextElementSibling、previousElementSibling、firstElementSibling、lastElementSibling、firstElementChild和 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?,F在該值保持不變。

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

展開閱讀全文
點擊加入討論??(1) 發布并加入討論??
1 評論
3 收藏
分享
返回頂部
頂部
一本久久综合亚洲鲁鲁五月天,无翼乌口工全彩无遮挡H全彩,英语老师解开裙子坐我腿中间