Swift:
Аналіз HTML

Як:

Swift за замовчуванням не включає вбудовану бібліотеку для розбору HTML, що потребує використання сторонніх бібліотек для ефективного виконання цього завдання. Одним з найпопулярніших варіантів є SwiftSoup, чиста бібліотека Swift, яка пропонує синтаксис подібний до jQuery для розбору і маніпуляції HTML.

Встановлення

Спочатку вам потрібно додати SwiftSoup до вашого проєкту. Якщо ви використовуєте Swift Package Manager, можете додати її до залежностей у вашому Package.swift:

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

Приклад: Витягування посилань з HTML

Припустимо, у вас є HTML-документ, і ви хочете витягнути всі посилання (<a href="...">). З SwiftSoup ви можете зробити це легко:

import SwiftSoup

let html = """
<!DOCTYPE html>
<html>
<head>
    <title>Зразкова сторінка</title>
</head>
<body>
    <p>Ласкаво просимо на наш сайт</p>
    <a href="https://example.com/page1">Сторінка 1</a>
    <a href="https://example.com/page2">Сторінка 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("Тип помилки: \(type) Повідомлення: \(message)")
} catch {
    print("помилка")
}

Приклад виводу

Попередній код витягує URL-адреси та їх текст з HTML, виводячи:

Сторінка 1 - https://example.com/page1
Сторінка 2 - https://example.com/page2

Цей базовий приклад демонструє, як використовувати SwiftSoup для розбору HTML-документів. Досліджуючи документацію SwiftSoup далі, ви можете знайти численні методи для навігації, пошуку та модифікації HTML-вмісту, надаючи вашим додаткам Swift змогу легко обробляти складний веб-вміст.