jsoup 1.16.1 现已发布。jsoup 是一个用于处理 real-world HTML 的 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
展开阅读全文
PHP总体算一门很灵活的语言,不同于Java的呆板,对于灵活的语言,越是高手代码越精炼,越是菜鸟代码越杂乱,因为给了你足够多的灵活性,你可以胡来, 灵活性排序,Java <<<< Python < PHP ~= Js < Perl < Ruby <<<< Haskell,Java这种呆板语言,很适合一个大规模团队整体协作,比如阿里这种团队,里面菜鸟高手混杂,最终高手被拉到和菜鸟一个水平, 因为没有灵活性,没有发货的余地,到处都是类套类,一层层套下去,无限冗余的来完成一个PHP只需要一两个人就可以完成的项目,极大的提升了就业率,所以越庞大的团队越喜欢Java,混在里面,写一辈子,也没人看得出水平高低, PHP就不同了,一个菜鸟的PHP代码,立刻会被老鸟看出来,被踢出去,到Java里安静的混日子,动弹还在的时候,有人发了过一个java代码,涉及到两次排序,竟然是先用Java的Sort排完,然后循环来一个冒泡排序,但凡写过PHP和JS都知道,usort、sort回调函数可以一次完成多重排序,Java的呆板禁锢了思维