jsoup 1.6.2发布 最棒的Java HTML解析器

开发 后端
jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。

jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。

jsoup 1.6.2 发布了,改版包含很多的 bug 修复,松散的 XML 解析模式,功能调整以及内存的改进。

主要改进内容包括:

- Added a simplified XML parsing mode, which can usefully parse valid and invalid XML, but does not enforce any HTML document structure or special tag behaviour.
- Added the optional ability to track errors when tokenising and parsing.
- Added Jsoup.connect.cookies(Map) method, to set multiple cookies at once, possibly from a prior request.
- Added Element.textNodes() and Element.dataNodes(), to easily access an element's children text nodes and data nodes.
- Added an example program that demonstrates how to format HTML as plain-text, and the use of the NodeVisitor interface.
- Added Node.traverse() and Elements.traverse() methods, to iterate through a node's descendants.
- Updated Jsoup.connect() so that when requests made as POSTs are redirected, the redirect is followed as a GET.
- Updated the Cleaner and whitelists to optionally preserve related links in elements, instead of converting them to absolute links.
- Updated the Cleaner to support custom allowed protocols such as "cid:" and "data:".
- Updated handling of base href tags, to act on only the first one seen when parsing, to align with modern browsers.
- Updated Node.setBaseUri(), to recursively set on all the node's descendants.
Bug fixes:
- Fixed an issue where all HTML parse errors where being tracked as new objects, creating high memory pressure on low-memory devices.
- Fixed handling of null characters within comments.
- Tweaked escaped entity detection in attributes to not treat &entity_... as an entity form.
- Fixed doctype tokeniser to allow whitespace between name and public identifier.
- Fixed issue where comments within a table tag would be duplicate-fostered into body.
- Fixed an issue where a spurious byte-order-mark at the start of a document would cause the parser to miss head contents.
- Fixed an issue where content after a frameset could cause a NPE crash. Now correctly implements spec and ignores the trailing content.
- Tweaked whitespace checks to align with HTML spec.
- Tweaked HTML output of closing script and style tags to not add an extraneous newline when pretty-printing.
- Substantially reduced default memory allocation within Node.outerHtml, to reduce memory pressure when serialising smaller DOMs.

详情请看官方发行说明:

http://jsoup.org/news/release-1.6.2

jsoup的主要功能如下:

  1. 从一个URL,文件或字符串中解析HTML;
  2. 使用DOM或CSS选择器来查找、取出数据;
  3. 可操作HTML元素、属性、文本;

jsoup是基于MIT协议发布的,可放心使用于商业项目。

示例代码:

  1. File input = new File("/tmp/input.html");  
  2. Document doc = Jsoup.parse(input, "UTF-8""http://example.com/");  
  3.  
  4. Element content = doc.getElementById("content");  
  5. Elements links = content.getElementsByTag("a");  
  6. for (Element link : links) {  
  7.   String linkHref = link.attr("href");  
  8.   String linkText = link.text();  

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

【编辑推荐】

  1. JActor 2.2.0 RC3发布 Actor模式的Java实现
  2. LogicalDOC 6.4发布 Java开源文档管理系统
  3. Resin 4.0.27发布 Java应用服务器
  4. LibrePlan 1.2.2发布 Java开源项目计划和管理
  5. xmemcached 1.3.6发布 memcached的Java开发包
责任编辑:林师授 来源: 51CTO
相关推荐

2011-06-17 17:08:03

系统升级录

2011-12-22 09:03:58

2011-03-15 13:17:08

LinuxopenSUSE 11

2012-03-23 09:26:55

傲游手机浏览器2.5.1发布

2012-02-14 09:43:49

JavaRSyntaxText

2011-11-21 17:24:13

Java MEJavaSDK

2010-03-24 16:50:53

FreeBSD 7.3

2012-06-17 13:26:07

MongoDBJava

2011-11-02 17:08:48

OpenBSD发布

2009-02-25 09:35:12

LinuxBASH 4.0OS X v10.4

2009-06-21 13:37:53

2012-03-15 16:46:02

JavaMyBatis

2009-09-27 13:41:55

Eclipse 3.5

2012-02-13 15:29:32

Python

2011-08-02 09:15:49

LibreOffice

2012-11-14 09:31:13

CloudStackIaaSCitrix

2012-03-15 09:57:59

JavaDynamicRepo

2011-12-21 08:58:23

Java

2011-06-07 10:07:06

LibreOffice

2011-02-24 09:36:33

LibreOffice
点赞
收藏

51CTO技术栈公众号