[swift] SwiftSoup에서 HTML 파싱하는 방법은?
먼저, 프로젝트에 SwiftSoup를 추가해야 합니다. SwiftSoup는 CocoaPods나 Swift Package Manager를 통해 설치할 수 있습니다.
CocoaPods를 사용하는 경우, Podfile에 다음과 같이 SwiftSoup를 추가합니다:
pod 'SwiftSoup'
그리고 터미널에서 다음 명령어를 실행하여 해당 라이브러리를 설치합니다:
pod install
Swift Package Manager를 사용하는 경우, 프로젝트의 Package.swift
파일에 다음과 같이 SwiftSoup를 추가합니다:
dependencies: [
.package(url: "https://github.com/scinfu/SwiftSoup.git", from: "2.3.2")
]
이제 SwiftSoup를 사용하여 HTML 문서를 파싱해보겠습니다. 아래 예제를 참고하세요:
import SwiftSoup
do {
// 파싱할 HTML 문서
let html = """
<html>
<body>
<h1>SwiftSoup 예제</h1>
<p>HTML 파싱하기</p>
<ul>
<li>리스트 1</li>
<li>리스트 2</li>
<li>리스트 3</li>
</ul>
</body>
</html>
"""
// HTML 파서 생성
let doc = try SwiftSoup.parse(html)
// h1 요소 추출
let h1Element = try doc.select("h1").first()
let h1Text = try h1Element?.text()
print(h1Text) // "SwiftSoup 예제"
// p 요소 추출
let pElement = try doc.select("p").first()
let pText = try pElement?.text()
print(pText) // "HTML 파싱하기"
// ul 요소 추출
let ulElement = try doc.select("ul").first()
// li 요소들 추출
let liElements = try ulElement?.select("li")
for li in liElements! {
let liText = try li.text()
print(liText)
}
// "리스트 1"
// "리스트 2"
// "리스트 3"
} catch {
print("파싱 에러: \(error)")
}
위의 예제에서는 SwiftSoup를 사용하여 HTML 문서를 파싱하고, h1
, p
, ul
, li
요소를 추출하고 출력하는 방법을 보여줍니다. select
메서드를 사용하여 원하는 요소를 선택하고, text
메서드를 사용하여 해당 요소의 텍스트를 추출합니다.
이제 SwiftSoup를 사용하여 HTML을 파싱하는 방법을 알게 되었습니다. SwiftSoup은 웹 스크래핑이나 HTML 파싱과 관련된 작업을 수행할 때 유용한 도구입니다. 추가적인 기능에 대해서는 공식 SwiftSoup 문서를 참조하시기 바랍니다.