[swift] SwiftSoup을 이용해 웹페이지에서 특정 태그와 클래스를 가진 모든 요소를 선택하는 방법은 무엇인가요?

먼저, SwiftSoup을 프로젝트에 추가해야 합니다. 프로젝트의 패키지 매니저 파일 (예: Package.swift)에 다음과 같이 SwiftSoup 종속성을 추가합니다.

dependencies: [
    .package(url: "https://github.com/scinfu/SwiftSoup.git", from: "2.3.2")
],

다음, SwiftSoup을 import하여 사용할 수 있도록 합니다.

import SwiftSoup

이제 웹페이지에서 요소를 선택하는 코드를 작성할 수 있습니다. 예를 들어, “https://www.example.com”에서 <div class="content"> 태그를 가진 모든 요소를 선택하려면 다음과 같이 작성합니다.

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 elements: Elements = try doc.select("div.content")
    
    for element in elements {
        print(element.text())
    }
} catch {
    print("Error: \(error)")
}

위 코드에서 div.content는 CSS 선택자로, “div” 태그 중 class="content"인 요소를 선택합니다. select 메서드를 통해 선택한 요소들은 elements 변수에 저장되고, 이를 순회하며 각 요소의 텍스트를 출력합니다.

이와 같은 방식으로 SwiftSoup을 사용하여 웹페이지에서 원하는 태그와 클래스를 가진 모든 요소를 선택할 수 있습니다. SwiftSoup의 다른 메서드와 기능에 대해서는 공식 문서를 참고하기를 권장합니다.

참고 자료: