[swift] SwiftSoup을 활용하여 웹페이지에서 텍스트 데이터를 추출하는 방법은?

SwiftSoup은 Swift에서 HTML 파싱을 쉽게 처리할 수 있는 라이브러리입니다. 이를 사용하여 웹페이지에서 텍스트 데이터를 추출하는 방법에 대해 알아보겠습니다.

먼저, SwiftSoup 라이브러리를 프로젝트에 추가해야 합니다. CocoaPods를 사용한다면, Podfile에 다음과 같이 SwiftSoup을 추가할 수 있습니다.

pod 'SwiftSoup'

설치 후, SwiftSoup을 import하여 사용할 준비를 합니다.

import SwiftSoup

이제 웹페이지에서 텍스트 데이터를 추출하는 코드를 작성해보겠습니다. 예를 들어, “https://www.example.com”에서 제목과 본문을 추출해 보겠습니다.

guard let url = URL(string: "https://www.example.com") else {
    return
}

do {
    let html = try String(contentsOf: url)
    let doc: Document = try SwiftSoup.parse(html)
    
    // 제목 추출
    let titleElement: Element? = try doc.select("title").first()
    let title: String = try titleElement?.text() ?? ""
    
    // 본문 추출
    let bodyElement: Element? = try doc.select("body").first()
    let body: String = try bodyElement?.text() ?? ""
    
    // 결과 출력
    print("제목: \(title)")
    print("본문: \(body)")
    
} catch {
    print("Error: \(error)")
}

위 코드에서는 URLRequest를 통해 웹페이지의 HTML을 가져와서 SwiftSoup을 사용하여 파싱한 후, 필요한 요소를 추출합니다. select 메서드를 사용하여 CSS 선택자를 이용해 원하는 요소를 선택할 수 있습니다.

이렇게 SwiftSoup을 활용하여 웹페이지에서 텍스트 데이터를 추출할 수 있습니다. 추가로 필요한 기능이 있다면 SwiftSoup의 문서를 참고하여 활용해보세요.

참고 자료