Vor kurzem habe ich Web Scraper in Python mit BeautifulSoup entwickelt. Jetzt möchte ich wissen, welche Bibliotheken in Java am meisten bevorzugt werden. Ich habe eine Suche gemacht, meistens sehe ich JTidy und JSoup. Was ist der Unterschied zwischen ihnen?JTidy oder Jsoup für Java
5
A
Antwort
11
JTidy
wird häufiger zu ordentlich die HTML verwendet, das heißt, zu fix fehlerhafter oder defekter HTML, wie nicht geschlossene Tags, zum Beispiel von <div><span>text</div>
zu <div><span>text</span></div
.
JSoup
, auf der anderen Seite bietet eine ausgewachsene API HTML davon und-Extrakt Teile zu analysieren. Sie können jQuery wie selectors verwenden, um Elemente zu finden, oder DOM
methods, die denen entsprechen, die Sie mit JavaScript verwenden, z. B. getElementById
. Ich würde sagen, JSoup ist tatsächlich das BeautifulSoup-Äquivalent von Java.
Zum Beispiel den ersten Absatz eines Wikipedia-Artikel mit JSoup zu extrahieren, könnten Sie folgendes:
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();
oder den Titel aus dieser ganz eigene Frage zu extrahieren:
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
Ziemlich nette API, nicht wahr? :-)
Related: http://stackoverflow.com/questions/5183748/tagsoup-vs-jsoup-vs-html-parser-vs-shotsax-vs – Vadzim