領先Java HTML 解析器的優缺點
在本文中,我們深入研究了幾個著名的Java HTML 解析器的優缺點,滿足對有關他們的優點和缺點的資訊的需求。
共同特徵和變體
幾乎所有主要的HTML 解析器都實作W3C DOM API,產生一個隨時可用的org.w3c.dom.Document 物件以供後續處理。然而,它們的功能存在關鍵差異。
JTidy、NekoHTML、TagSoup 和 HtmlCleaner 通常對格式不良的 HTML 表現出寬容的態度,尋求「整理」標準 DOM 遍歷的原始程式碼。
專業解析器
HtmlUnit:
HtmlUnit 提供了一個獨特的 API,可以實作表格填入、元素點擊 JavaScript執行等操作,使其成為一個成熟的「GUI-更少的網路
Jsoup:
Jsoup 具有自己的API,用於使用CSS 選擇器選擇元素,並促進HTML DOM 樹的無縫遍歷,使資料擷取特別有效率。
比較
考慮以下程式碼範例,利用 JTidy 和 XPath 進行資料擷取:// Using JTidy and XPath Document document = new Tidy().parseDOM(new URL(url).openStream(), null); XPath xpath = XPathFactory.newInstance().newXPath(); Node question = (Node) xpath.compile("//*[@id='question']//*[contains(@class,'post-text')]//p[1]").evaluate(document, XPathConstants.NODE); System.out.println("Question: " + question.getFirstChild().getNodeValue());
// Using Jsoup Document document = Jsoup.connect(url).get(); Element question = document.select("#question .post-text p").first(); System.out.println("Question: " + question.text());
摘要
對於標準DOM 操作,像JTidy 和NekoHTML 這樣的通用解析器就足夠了。單元測試。遍歷而成為一個令人信服的選擇。以上是哪種 Java HTML 解析器適合我的專案:JTidy、NekoHTML、HtmlUnit 還是 Jsoup?的詳細內容。更多資訊請關注PHP中文網其他相關文章!