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
5
A
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? :-)
correlati: http://stackoverflow.com/questions/5183748/tagsoup-vs-jsoup-vs-html-parser-vs-hotsax-vs – Vadzim