jsoup是一款开源的HTML解析工具包,采用Java语言编写,通过精巧的API充分利用DOM、CSS和类jquery的方法抽取和操作数据。最近,jsoup 1.3.1正式发布,对上一版(1.2.3)做了重要更新,包括完成自主实现(无外部依赖)、改进Web连接方法等。
随着Web应用的不断发展,开发人员有时需要通过HTML解析功能实现客户需求。读者朋友可能对老牌HTML Parser Java库比较熟悉。其实,jsoup也是为了方便开发人员实现HTML解析而刚刚诞生(2010年初发起)的一款工具包。jsoup的主要功能包括:
解析,通过URL、文件或者字符串来分析HTML文档。
查找,通过DOM遍历或者CSS选择器来寻找和抽取数据。
操作,处理HTML元素、属性和文本。
检查,通过白名单机制来保护HTML内容的安全。
jsoup 1.3.1的主要更新包括:
完成了自主实现,在之前的版本中,jsoup依赖于Apache Commons-Lang的一些方法,如HTML内容解析等。在新版中,这些方法完全自主实现,不再需要外部依赖。一方面减少JVM的内存消耗,另一方面有助于开发人员入门。
改进Web连接方法,jsoup现在支持一种方便的connection接口,即Jsoup.connect(String url)。这种方法允许开发人员快捷地创建HTTP请求,包括指定用户代理、cookie、超时等等。方法的返回值可以直接被解析成Document。示例代码如下:
Document doc = Jsoup.connect("http://example.com")
.data("query", "Java")
.userAgent("Mozilla")
.cookie("auth", "token")
.timeout(3000)
.post();
增加了一些便捷方法,如Element.ownText()、Document.OutputSettings.prettyPrint(boolean)等。
改进了文档解析的性能。
修补了一些Bug。
感兴趣的读者朋友可以下载jsoup试用,查看其使用手册和文档说明。jsoup采用MIT协议开源,目前在GitHub上进行开发和维护,喜欢深究的朋友可以在此查看源代码。