Swift:
Разбор HTML

Как это сделать:

В Swift нет встроенного анализа HTML; нам нужен помощник. Давайте используем SwiftSoup, библиотеку для Swift, напоминающую BeautifulSoup для Python. Сначала добавьте SwiftSoup в ваш проект с помощью Swift Package Manager.

Вот как это сделать:

import SwiftSoup

do {
    let html = "<html><head><title>Первый анализ</title></head>"
                + "<body><p>HTML анализирован в документ.</p></body></html>"
    let doc = try SwiftSoup.parse(html)
    let title = try doc.title()
    let bodyText = try doc.body()?.text()
    
    print(title) // Вывод: Первый анализ
    print(bodyText) // Вывод: HTML анализирован в документ.
} catch Exception.Error(let type, let message) {
    print("Произошла ошибка типа: \(type): \(message)")
} catch {
    print("Произошла неизвестная ошибка")
}

Глубокое погружение

HTML или язык гипертекстовой разметки стал основой веба с тех пор, как Тим Бернерс-Ли представил его (и веб) в 1991 году. По мере развития веба развивался и HTML, усложняя анализ.

Вот почему SwiftSoup выделяется:

  • Дружелюбный к пользователю: Его API повторяет JQuery, что делает его интуитивно понятным для тех, кто знаком с веб-разработкой.
  • Надежность: Хорошо справляется с реальными особенностями HTML.
  • Производительность: Swift быстрый, что важно для больших задач анализа.

Альтернативы? Конечно!

  • WebKit: Используйте это для более тяжелых задач, таких как рендеринг веб-страниц или выполнение JavaScript.
  • libxml2: Жесткий путь через C, но будьте готовы к вызову.
  • Regex: Просто нет. Это не анализатор. Не пытайтесь “анализировать” HTML с помощью regex. Серьезно.

Однако помните, что анализатор вроде SwiftSoup не просто читает страницу как есть; он не воспринимает контент, динамически загружаемый с помощью JavaScript. Для этого лучше обратиться к решениям, связанным с WebKit или безголовыми режимами браузеров.

Смотрите также