2012-09-15 9 views
5

Recentemente ho sviluppato web scrapers in python con BeautifulSoup. Ora voglio sapere quali librerie sono le più preferite in Java. Ho fatto qualche ricerca, principalmente vedo JTidy e JSoup. Qual'è la differenza tra loro?JTidy o Jsoup per Java

+0

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

risposta

11

JTidy è più comunemente usato per ordinato il codice HTML, che è, per correzione malformati o difettoso HTML, come i tag non chiusi, per esempio, da <div><span>text</div> a <div><span>text</span></div.

JSoup, d'altra parte, fornisce un'API in piena regola per analizzare HTML e a estratto parti di esso. Ti permette di usare jQuery come selectors per trovare elementi, o DOM methods, equivalenti a quelli che usi con JavaScript, come ad esempio getElementById. Direi che JSoup è davvero l'equivalente di BeautifulSoup di Java.

Ad esempio, per estrarre il primo paragrafo di un articolo di Wikipedia con JSoup, è possibile utilizzare il seguente:

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(); 

O per estrarre il titolo da questa stessa domanda:

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 

Una bella API, eh? :-)