Swift:
Análise de HTML
How to:
Swift não tem suporte nativo para parsear HTML, então vamos usar uma biblioteca chamada SwiftSoup. Instale adicionando SwiftSoup
ao seu arquivo Podfile
ou Package.swift
.
import SwiftSoup
func extrairTitulos(html: String) {
do {
let doc = try SwiftSoup.parse(html)
let titulos = try doc.select("h1").array().map { try $0.text() }
print(titulos)
} catch Exception.Error(_, let message) {
print(message)
} catch {
print("Erro desconhecido.")
}
}
let htmlString = "<html><head><title>Exemplo</title></head><body><h1>Cabeçalho 1</h1><h1>Cabeçalho 2</h1></body></html>"
extrairTitulos(html: htmlString)
Output esperado:
["Cabeçalho 1", "Cabeçalho 2"]
Deep Dive:
Parsear HTML com Swift é relativamente novo, comparado com linguagens como Python ou Java que têm ferramentas como BeautifulSoup e Jsoup, respectivamente. SwiftSoup é inspirada em Jsoup e oferece uma API similar. É importante saber que fazer parsing de HTML pode ser arriscado se o HTML não for bem formado ou confiável – sempre limpe o conteúdo para evitar ataques como XSS. Alternativas ao SwiftSoup incluem o Kanna e o Alamofire com extensões HTML. Quanto à implementação, a biblioteca SwiftSoup faz um uso pesado de padrões de projetos conhecidos, especialmente o Visitor Pattern
para percorrer o DOM (Documento Object Model) do HTML.