HTML-Parsing in Kotlin: Bibliotheken und Codebeispiele

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 Kotlin: Vollständiger Überblick über Tools und Bibliotheken



Kotlin ist eine moderne Programmiersprache, die auf der JVM, Android und im Browser läuft. Dank der Kompatibilität mit Java und einer leistungsstarken Standardbibliothek bietet Kotlin mehrere effiziente Möglichkeiten zum Parsen von HTML. In diesem Artikel betrachten wir die wichtigsten Bibliotheken zum HTML-Parsing in Kotlin, ihre Besonderheiten und geben praktische Codebeispiele.



1. Jsoup – Universeller HTML-Parser für Kotlin



Jsoup ist die beliebteste Bibliothek zum HTML-Parsing auf der JVM. Sie funktioniert hervorragend mit Kotlin dank vollständiger Java-Kompatibilität. Jsoup ermöglicht das Laden von HTML aus URLs, Dateien oder Strings und das Extrahieren von Daten mittels CSS-Selektoren und DOM-Navigation.



Installation von Jsoup in einem Kotlin-Projekt

Fügen Sie die Abhängigkeit in build.gradle.kts hinzu:

dependencies {    implementation("org.jsoup:jsoup:1.17.2")}


Beispiel für HTML-Parsing mit Jsoup

import org.jsoup.Jsoupimport org.jsoup.nodes.Document

fun main() { val url = "https://example.com" val doc: Document = Jsoup.connect(url).get() val title = doc.title() println("Seitentitel: $title") // Alle Links extrahieren val links = doc.select("a[href]") links.forEach { link -> println("Link: ${link.attr("abs:href")} — ${link.text()}") } // Parsing aus einem String val html = "<div class='content'>Hallo, Kotlin!</div>" val parsed = Jsoup.parse(html) val text = parsed.select(".content").text() println("Text aus HTML: $text")}


2. Ktor Client + kotlinx.html – Nativer Kotlin-Ansatz



Für Projekte, die Ktor als HTTP-Client verwenden, ist die Kombination aus ktor-client und kotlinx.html eine ausgezeichnete Wahl. Ersteres ist für das Laden von Seiten zuständig, Letzteres für das Parsen von HTML in eine typisierte DOM-Struktur.



Abhängigkeiten für Ktor und kotlinx.html

dependencies {    implementation("io.ktor:ktor-client-core:2.3.7")    implementation("io.ktor:ktor-client-cio:2.3.7")    implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:0.11.0")}


Beispiel für Parsing mit Ktor und kotlinx.html

import io.ktor.client.*import io.ktor.client.request.*import io.ktor.client.statement.*import kotlinx.html.*import kotlinx.html.parser.*

suspend fun parseHtmlWithKtor() { val client = HttpClient() val response: HttpResponse = client.get("https://example.com") val htmlContent = response.bodyAsText() val document = parseHtml(htmlContent) val title = document.head?.title ?: "Kein Titel" println("Titel: $title") // Alle Absätze extrahieren document.body?.allElements?.filterIsInstance<P>()?.forEach { p -> println("Absatz: ${p.text}") } client.close()}


3. Vergleich der Bibliotheken zum HTML-Parsing in Kotlin



Die Wahl des Tools hängt von der jeweiligen Aufgabe ab. Hier sind die wichtigsten Kriterien:



  • Jsoup – die beste Wahl für komplexes Parsing mit CSS-Selektoren. Geeignet für Datenscraping, Extrahieren von Tabellen, Formularen und Medienelementen.
  • Ktor + kotlinx.html – ideal für Ktor-Projekte, bei denen leichtes Parsing ohne überflüssige Abhängigkeiten erforderlich ist. Arbeitet asynchron.
  • HtmlCleaner – eine weitere Java-Bibliothek, gut kompatibel mit Kotlin. Nützlich zum Bereinigen von "schmutzigem" HTML.
  • OkHttp + Jsoup – eine Kombination zur Feinabstimmung von HTTP-Anfragen mit leistungsstarkem Parsing.


4. Fortgeschrittene Parsing-Techniken in Kotlin



Datenextraktion mit CSS-Selektoren (Jsoup)

val doc = Jsoup.connect("https://news.ycombinator.com").get()val stories = doc.select("tr.athing")stories.forEach { story ->                    

Empfehlungen