[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 문서를 참조하시기 바랍니다.