HTML-Parsing in Java: Jsoup, HtmlUnit und andere Tools

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

HTML-Parsing in Java: Überblick über Bibliotheken und Tools



HTML-Parsing ist der Prozess der Extraktion strukturierter Daten aus HTML-Dokumenten. In Java gibt es für diese Aufgabe mehrere leistungsstarke Bibliotheken, die nicht nur das Parsen statischer Seiten, sondern auch die Verarbeitung dynamischer Inhalte ermöglichen. In diesem Artikel betrachten wir drei der beliebtesten Tools: Jsoup, HtmlUnit und Jericho HTML Parser. Jedes hat seine eigenen Besonderheiten und Anwendungsbereiche.



1. Jsoup – universeller HTML-Parser



Jsoup ist die bekannteste Java-Bibliothek für die Arbeit mit HTML. Sie bietet eine benutzerfreundliche API zum Laden, Parsen und Extrahieren von Daten und unterstützt CSS-Selektoren sowie Manipulationen am DOM-Baum. Jsoup ist ideal für statische Seiten und einfache Web-Scraping-Aufgaben.



Hauptfunktionen:

  • Laden von HTML aus URL, Datei oder String
  • Datenextraktion mit CSS-Selektoren
  • Bereinigung von HTML von unerwünschten Tags
  • Modifikation des DOM (Hinzufügen/Entfernen von Elementen)
  • Automatische Korrektur von fehlerhaftem HTML


Codebeispiel: Extrahieren von Nachrichtenüberschriften

import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.select.Elements;

public class JsoupExample { public static void main(String[] args) throws Exception { // HTML-Seite laden Document doc = Jsoup.connect("https://example.com/news") .userAgent("Mozilla/5.0") .timeout(5000) .get(); // Alle h2-Überschriften mit der Klasse "news-title" extrahieren Elements titles = doc.select("h2.news-title"); // Text jeder Überschrift ausgeben titles.forEach(title -> System.out.println(title.text())); }}


2. HtmlUnit – Parsing mit JavaScript-Unterstützung



HtmlUnit ist ein Headless-Browser in Java, der die Funktionsweise eines Webbrowsers emuliert. Im Gegensatz zu Jsoup führt er JavaScript-Code aus, verarbeitet AJAX-Anfragen und unterstützt Cookies. Dies ist ein unverzichtbares Tool für das Parsen moderner SPA-Anwendungen und Websites mit dynamischen Inhalten.



Wichtige Funktionen:

  • Vollständige Browser-Emulation (Chrome, Firefox, IE)
  • Ausführung von JavaScript (einschließlich jQuery und React)
  • Unterstützung von Formularen, Klicks und Seitennavigation
  • Arbeit mit Cookies, Sessions und Weiterleitungen
  • Integrierte Unterstützung von XPath und CSS-Selektoren


Codebeispiel: Warten auf das Laden dynamischer Inhalte

import com.gargoylesoftware.htmlunit.WebClient;import com.gargoylesoftware.htmlunit.html.HtmlPage;import com.gargoylesoftware.htmlunit.html.HtmlElement;

public class HtmlUnitExample { public static void main(String[] args) throws Exception { try (WebClient webClient = new WebClient()) { // Logging und Timeouts deaktivieren webClient.getOptions().setThrowExceptionOnScriptError(false); webClient.getOptions().setJavaScriptEnabled(true); // Seite laden HtmlPage page = webClient.getPage("https://example.com/dynamic"); // 2 Sekunden auf JS-Ausführung warten webClient.waitForBackgroundJavaScript(2000); // Daten per XPath extrahieren HtmlElement element = page.getFirstByXPath("//div[@class='result']/p"); System.out.println("Ergebnis: " + element.getTextContent()); } }}


3. Jericho HTML Parser – leicht und schnell



Jericho HTML Parser ist eine leichte Bibliothek mit minimalen Abhängigkeiten. Sie eignet sich hervorragend zum Parsen von ungültigem HTML und bietet einen Low-Level-Zugriff auf die Dokumentstruktur.

Empfehlungen