Datenparsing und Scraping in Java: Vom Anfänger zum ersten Parser

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

Warum Java und nicht Python? (Spoiler: Die Wahl ist nicht offensichtlich)

\n

Wenn es um Datenparsing und Scraping geht, denkt man meistens an Python mit seinem BeautifulSoup und Scrapy. Aber seien wir ehrlich: In der Welt der Enterprise-Entwicklung, hochbelasteter Systeme und Microservices bleibt Java der König. Wenn Sie bereits in Java programmieren oder sich gerade für diese Sprache interessieren, dann ist Parsing damit nicht nur "möglich", sondern oft auch notwendig: hohe Geschwindigkeit, integrierte Multithreading-Fähigkeiten, leistungsstarke Werkzeuge für die Arbeit mit HTTP und HTML.

\n

In diesem Artikel werden wir uns ansehen, wie man Websites in Java von Grund auf parst. Sie erfahren, welche Bibliotheken Sie verwenden sollten, wie Sie einer Sperre entgehen und wie Sie Ihren ersten funktionierenden Parser erstellen. Die Codebeispiele werden so praxisnah wie möglich sein – nehmen Sie sie und führen Sie sie aus.

\n\n

Was ist Datenparsing und Scraping (und warum Sie es brauchen)

\n

Bevor wir in den Code eintauchen, klären wir die Begriffe. Parsing ist die Analyse einer Struktur (HTML, JSON, XML) und das Extrahieren der benötigten Informationen. Scraping ist der Prozess des Sammelns von Daten von Webseiten, der sowohl Parsing als auch das Herunterladen von Seiten und das Durchgehen von Links umfasst.

\n

Wofür wird das benötigt? Beispiele aus der Praxis:

\n
    \n
  • Überwachung der Preise von Wettbewerbern (Datensammlung von Online-Shops).
  • \n
  • Sammeln von Kontakten und E-Mail-Adressen für die B2B-Leadgenerierung.
  • \n
  • Automatisierung der Sammlung von Nachrichten oder Beiträgen aus sozialen Netzwerken.
  • \n
  • Analyse von Bewertungen und Produktbewertungen.
  • \n
\n

In Java geht das alles schnell, stabil und mit minimalem Speicherverbrauch.

\n\n

Java-Werkzeuge für das Parsing: Bibliotheken auswählen

\n

Für das Parsing und Scraping von Daten in Java gibt es mehrere leistungsstarke Bibliotheken. Hier ist die grundlegende Auswahl, die 95% der Aufgaben abdeckt:

\n
    \n
  • Jsoup – die wichtigste Bibliothek zum Parsen von HTML. Sie kann Websites besuchen, Elemente per CSS-Selektor extrahieren und mit Attributen und Text arbeiten.
  • \n
  • Apache HttpClient oder Java 11+ HttpClient – für die Feinabstimmung von Anfragen, die Arbeit mit Cookies, Sitzungen und Headern.
  • \n
  • Selenium WebDriver – wenn die Website JavaScript zum Laden von Daten verwendet. Rendert die Seite wie ein echter Browser (Chrome, Firefox).
  • \n
  • OkHttp – eine leichte und schnelle Alternative zu HttpClient.
  • \n
\n

Für die meisten statischen Websites reichen Jsoup + der integrierte HttpClient. Für dynamische Websites fügen wir Selenium hinzu.

\n\n

Unseren ersten Parser in Java mit Jsoup schreiben

\n

Beginnen wir einfach: Wir parsen die Artikelüberschriften eines Blogs. Angenommen, wir möchten alle Überschriften von der Startseite von pythonlib.ru (hypothetisch) sammeln.

\n

Binden wir die Abhängigkeit in Maven ein (pom.xml):

\n
<dependency>\n    <groupId>org.jsoup</groupId>\n    <artifactId>jsoup</artifactId>\n    <version>1.17.2</version>\n</dependency>
\n\n

Und nun der Code selbst:

\n
import org.jsoup.Jsoup;\nimport org.jsoup.nodes.Document;\nimport org.jsoup.nodes.Element;\nimport org.jsoup.select.Elements;\n\npublic class SimpleParser {\n    public static void main(String[] args) {\n        try {\n            // 1. Seite laden\n            Document doc = Jsoup.connect("https://pythonlib.ru")\n                    .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36")\n                    .timeout(10000)\n                    .get();\n\n            // 2. Alle h2-Überschriften auswählen (oder einen anderen Selektor)\n            Elements headlines = doc.select("h2.entry-title a");\n\n            // 3. Text und Links ausgeben\n            for (Element headline : headlines) {\n                String title = headline.text();\n                String link = headline.attr("href");\n                System.out.println("Überschrift: " + title);\n                System.out.println("Link: " + link);\n                System.out.println("---");\n            }\n\n        } catch (Exception e) {\n            e.printStac                

Blogs

Buchempfehlungen