Swift:
Analizando HTML

Cómo hacerlo:

Swift, por defecto, no incluye una biblioteca integrada para el análisis de HTML, lo que hace necesario el uso de bibliotecas de terceros para manejar esta tarea eficazmente. Una de las opciones más populares es SwiftSoup, una biblioteca pura de Swift que ofrece una sintaxis tipo jQuery para el análisis y manipulación de HTML.

Instalación

Primero, necesitas añadir SwiftSoup a tu proyecto. Si estás utilizando el Swift Package Manager, puedes agregarlo a tus dependencias en Package.swift:

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

Ejemplo: Extrayendo Enlaces de HTML

Supón que tienes un documento HTML y deseas extraer todos los enlaces (<a href="...">). Con SwiftSoup, puedes lograr esto fácilmente:

import SwiftSoup

let html = """
<!DOCTYPE html>
<html>
<head>
    <title>Página de muestra</title>
</head>
<body>
    <p>Bienvenido a nuestro sitio web</p>
    <a href="https://ejemplo.com/pagina1">Página 1</a>
    <a href="https://ejemplo.com/pagina2">Página 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 tipo, let mensaje) {
    print("Tipo de error: \(tipo) Mensaje: \(mensaje)")
} catch {
    print("error")
}

Salida de Muestra

El código anterior extrae las URL y su texto del HTML, mostrando:

Página 1 - https://ejemplo.com/pagina1
Página 2 - https://ejemplo.com/pagina2

Este ejemplo básico demuestra cómo aprovechar SwiftSoup para el análisis de documentos HTML. Explorando más la documentación de SwiftSoup, puedes encontrar numerosos métodos para navegar, buscar y modificar el contenido HTML, capacitando a tus aplicaciones Swift para procesar contenido web complejo con facilidad.