[swift] SwiftSoup을 사용하여 웹페이지에서 특정 태그의 내용을 변경하는 방법은?
- SwiftSoup을 프로젝트에 추가합니다. Swift Package Manager를 사용하여 SwiftSoup을 설치합니다.
Package.swift
파일에 아래 코드를 추가합니다.
...
dependencies: [
...
.package(url: "https://github.com/scinfu/SwiftSoup.git", from: "2.3.2")
],
targets: [
.target(
name: "YourTarget",
dependencies: [..., "SwiftSoup"]
),
...
]
...
- SwiftSoup를 import 합니다.
import SwiftSoup
- 원하는 웹페이지의 HTML을 가져옵니다.
guard let url = URL(string: "https://example.com") else {
print("Invalid URL")
return
}
do {
let html = try String(contentsOf: url)
let doc = try SwiftSoup.parse(html)
// 태그 내용을 변경할 코드를 작성합니다.
} catch {
print("Error: \(error)")
}
- 특정 태그의 내용을 변경합니다.
예를 들어, <p>
태그 내부의 텍스트를 변경하려고 한다면, 아래와 같은 방법을 사용할 수 있습니다.
do {
let paragraphs = try doc.select("p")
for paragraph in paragraphs {
try paragraph.text("새로운 내용")
}
} catch {
print("Error: \(error)")
}
이렇게 하면 웹페이지에서 모든 <p>
태그의 내용이 “새로운 내용”으로 변경됩니다.
- 변경된 내용을 원하는 형식으로 출력하거나 저장합니다.
do {
let modifiedHTML = try doc.html()
print(modifiedHTML) // 변경된 HTML 출력
// 파일로 저장하려면
let fileURL = ... // 저장할 파일의 URL
try modifiedHTML.write(to: fileURL, atomically: true, encoding: .utf8)
} catch {
print("Error: \(error)")
}
프로젝트에서 SwiftSoup을 사용하여 웹페이지의 특정 태그의 내용을 변경하는 방법에 대해서 알아보았습니다. 위 예제를 기반으로 원하는 태그 및 내용을 변경하는 코드를 작성하면 됩니다.