> Linux新闻 >

Java HTML 解析器 jsoup 发布 1.13.1,解析速度显著提升

jsoup 1.13.1 已发布,值得关注的改进包括:解析速度较 1.12.x 有了显著提升、选择器增加新特性、修复 Mark Invalid 出现异常的问题,以及许多其他的改进。

jsoup 是最好的 Java HTML 解析器(红薯认证),它使用最好的 HTML5 DOM 方法和 CSS 选择器,为提取和处理数据提供了非常方便的 API。感受一下代码:

Document doc = Jsoup.connect("https://en.wikipedia.org/").get();
log(doc.title());
Elements newsHeadlines = doc.select("#mp-itn b a");
for (Element headline : newsHeadlines) {
  log("%s\n\t%s", 
    headline.attr("title"), headline.absUrl("href"));
}

上面这段代码先是抓取了维基百科的主页,将其解析为 DOM,然后选中“In the news”版块的标题并将其填充至使用 Elements 类初始化的 headline 对象中。(在线示例,完整代码)

下载地址:https://jsoup.org/download

<dependency>
  <!-- jsoup HTML parser library @ https://jsoup.org/ -->
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.13.1</version>
</dependency>

1.13.1 值得关注的改进

  • 新增Element.closest()方法,它会对树进行搜索,以找到与选择器匹配的最相近元素
  • 优化内存,将Document的常驻内存减少了约 39%,分配到的内存减少了约 9%
    1.仅当元素具有属性时,才会在Element中创建Attributesholder
    2.仅当通过 DOM 将给定树的baseUri设置为新值时,才跟踪该元素中的baseUri
    3.完成解析后,不会在Document.parser中保留输入字符读取器( 和相关的缓冲区)
  • 与 1.12.x 相比,解析速度有了实质性的改进
  • 移除旧版本中被标记为不推荐使用的旧方法和类
  • 增加Element.select(Evaluator)和 Element.selectFirst(Evaluator)方法,允许在多次使用同一评估器的情况下重用已解析的 CSS 选择器

详细更新内容查看 https://jsoup.org/news/release-1.13.1

 

(责任编辑:IT)