Swift:
HTML parsen

Wie:

Swift enthält standardmäßig keine integrierte Bibliothek für das HTML-Parsing, weshalb die Verwendung von Drittanbieter-Bibliotheken notwendig ist, um diese Aufgabe effektiv zu bewältigen. Eine der beliebtesten Optionen ist SwiftSoup, eine reine Swift-Bibliothek, die eine jQuery-ähnliche Syntax für das HTML-Parsing und die Manipulation bietet.

Installation

Zuerst müssen Sie SwiftSoup zu Ihrem Projekt hinzufügen. Wenn Sie den Swift Package Manager verwenden, können Sie es zu Ihren Abhängigkeiten in Package.swift hinzufügen:

dependencies: [
    .package(url: "https://github.com/scinfu/SwiftSoup.git", from: "2.3.2")
]

Beispiel: Extrahieren von Links aus HTML

Angenommen, Sie haben ein HTML-Dokument und möchten alle Links (<a href="...">) extrahieren. Mit SwiftSoup können Sie dies leicht bewerkstelligen:

import SwiftSoup

let html = """
<!DOCTYPE html>
<html>
<head>
    <title>Beispielseite</title>
</head>
<body>
    <p>Willkommen auf unserer Website</p>
    <a href="https://example.com/page1">Seite 1</a>
    <a href="https://example.com/page2">Seite 2</a>
</body>
</html>
"""

do {
    let doc: Document = try SwiftSoup.parse(html)
    let links: Elements = try doc.select("a")
    for link in links.array() {
        let linkHref: String = try link.attr("href")
        let linkText: String = try link.text()
        print("\(linkText) - \(linkHref)")
    }
} catch Exception.Error(let type, let message) {
    print("Fehlertyp: \(type) Nachricht: \(message)")
} catch {
    print("Fehler")
}

Beispiel-Ausgabe

Der vorherige Code extrahiert URLs und deren Text aus dem HTML und gibt folgendes aus:

Seite 1 - https://example.com/page1
Seite 2 - https://example.com/page2

Dieses grundlegende Beispiel demonstriert, wie man SwiftSoup für das Parsen von HTML-Dokumenten nutzen kann. Indem man die Dokumentation von SwiftSoup weiter erforscht, kann man zahlreiche Methoden entdecken, um durch den HTML-Inhalt zu navigieren, zu suchen und ihn zu modifizieren, was Ihre Swift-Anwendungen befähigt, komplexe Webinhalte mit Leichtigkeit zu verarbeiten.