2012-09-15 70 views
5

最近我一直在用BeautifulSoup開發python中的web scrapers。現在我想知道哪些庫是Java中最受歡迎的。我做了一些搜索,主要是我看到了JTidy和JSoup。他們有什麼區別?針對Java的JTidy或Jsoup

+0

相關:http://stackoverflow.com/questions/5183748/tagsoup-vs-jsoup-vs-html-parser-vs-hotsax-vs – Vadzim

回答

11

JTidy更常用於整齊的HTML,也就是說,要修復格式不正確或錯誤的HTML,如沒有結束的標記,例如,從<div><span>text</div><div><span>text</span></div

JSoup,在另一方面,提供了一個全面的API來解析HTML 提取份的它。它允許您使用像selectors這樣的jQuery來查找元素,或者DOM methods,與您在JavaScript中使用的元素相同,如getElementById。我會說JSoup確實是Java的BeautifulSoup等價物。

例如,提取維基百科文章與JSoup第一款,你可以使用以下命令:

String url = "http://en.wikipedia.org/wiki/Potato"; 
Document doc = Jsoup.connect(url).get(); 
Elements paragraphs = doc.select(".mw-content-ltr p"); 
String firstParagraph = paragraphs.first().text(); 

或者從中提取這個自己的問題標題:

Document doc = Jsoup.connect("http://stackoverflow.com/questions/12439078/jtidy-or-jsoup-for-java").get(); 
String question = doc.select("#question-header a").text(); // JTidy or Jsoup for Java 

相當不錯的API,呃? :-)