Swift:
解析HTML
如何做:
默认情况下,Swift 不包含用于 HTML 解析的内置库,这就需要使用第三方库来有效地处理这项任务。其中最受欢迎的选择之一是 SwiftSoup,一个纯 Swift 库,它提供了类似 jQuery 的语法来进行 HTML 解析和操作。
安装
首先,你需要将 SwiftSoup 添加到你的项目中。如果你使用的是 Swift 包管理器,可以在你的 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("错误")
}
示例输出
前面的代码从 HTML 中提取了 URL 及其文本,输出为:
页面 1 - https://example.com/page1
页面 2 - https://example.com/page2
这个基础示例演示了如何利用 SwiftSoup 解析 HTML 文档。通过进一步探索 SwiftSoup 的文档,你可以找到多种方法来导航、搜索和修改 HTML 内容,使你的 Swift 应用能够轻松处理复杂的网络内容。