2012-09-15 30 views
5

Recientemente he estado desarrollando raspadores web en python con BeautifulSoup. Ahora quiero saber qué bibliotecas son las más preferidas en Java. He hecho una búsqueda, sobre todo veo JTidy y JSoup. ¿Cuál es la diferencia entre ellos?JTidy o Jsoup para Java

+0

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

Respuesta

11

JTidy se utiliza más comúnmente para ordenado el HTML, es decir, a fix formato incorrecto o defectuoso HTML, tales como etiquetas sin cerrar, por ejemplo, desde <div><span>text</div> a <div><span>text</span></div.

JSoup, por otro lado, proporciona un API en toda regla a analizar HTML y a extracto partes de ella. Le permite usar jQuery como selectors para encontrar elementos, o DOM methods, equivalentes a los que usa con JavaScript, como getElementById. Yo diría que JSoup es de hecho el equivalente de BeautifulSoup de Java.

Por ejemplo, para extraer el primer párrafo de un artículo de Wikipedia con JSoup, podría utilizar el siguiente:

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 para extraer el título de esta propia pregunta:

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 buena API, ¿eh? :-)