jsoup是一款開源的HTML解析工具包,采用Java語言編寫,通過精巧的API充分利用DOM、CSS和類jquery的方法抽取和操作數(shù)據(jù)。最近,jsoup 1.3.1正式發(fā)布,對上一版(1.2.3)做了重要更新,包括完成自主實(shí)現(xiàn)(無外部依賴)、改進(jìn)Web連接方法等。
隨著Web應(yīng)用的不斷發(fā)展,開發(fā)人員有時需要通過HTML解析功能實(shí)現(xiàn)客戶需求。讀者朋友可能對老牌HTML Parser Java庫比較熟悉。其實(shí),jsoup也是為了方便開發(fā)人員實(shí)現(xiàn)HTML解析而剛剛誕生(2010年初發(fā)起)的一款工具包。jsoup的主要功能包括:
解析,通過URL、文件或者字符串來分析HTML文檔。
查找,通過DOM遍歷或者CSS選擇器來尋找和抽取數(shù)據(jù)。
操作,處理HTML元素、屬性和文本。
檢查,通過白名單機(jī)制來保護(hù)HTML內(nèi)容的安全。
jsoup 1.3.1的主要更新包括:
完成了自主實(shí)現(xiàn),在之前的版本中,jsoup依賴于Apache Commons-Lang的一些方法,如HTML內(nèi)容解析等。在新版中,這些方法完全自主實(shí)現(xiàn),不再需要外部依賴。一方面減少JVM的內(nèi)存消耗,另一方面有助于開發(fā)人員入門。
改進(jìn)Web連接方法,jsoup現(xiàn)在支持一種方便的connection接口,即Jsoup.connect(String url)。這種方法允許開發(fā)人員快捷地創(chuàng)建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)等。
改進(jìn)了文檔解析的性能。
修補(bǔ)了一些Bug。
感興趣的讀者朋友可以下載jsoup試用,查看其使用手冊和文檔說明。jsoup采用MIT協(xié)議開源,目前在GitHub上進(jìn)行開發(fā)和維護(hù),喜歡深究的朋友可以在此查看源代碼。