[swift] SwiftSoup을 이용해 웹페이지에서 특정 태그의 이전 요소를 선택하는 방법은 무엇인가요?

먼저, SwiftSoup을 프로젝트에 추가해야 합니다. 프로젝트의 Podfile에 다음과 같이 SwiftSoup을 추가합니다:

pod 'SwiftSoup'

그런 다음, 터미널에서 pod install 명령을 실행하여 SwiftSoup을 설치합니다.

이제, 웹페이지에서 특정 태그의 이전 요소를 선택할 준비가 되었습니다. 아래는 예시 코드입니다:

import SwiftSoup

// 웹페이지 URL
let url = "https://www.example.com"

// 웹페이지 다운로드
guard let pageURL = URL(string: url),
      let pageData = try? Data(contentsOf: pageURL),
      let html = String(data: pageData, encoding: .utf8) else {
    print("Failed to download the webpage")
    return
}

do {
    // SwiftSoup을 사용하여 HTML 파싱
    let doc: Document = try SwiftSoup.parse(html)
    
    // 이전 요소를 찾을 태그 선택
    let targetTag = "h1"
    
    // 태그 선택자를 사용하여 이전 요소 추출
    guard let previousElement = try doc.select(targetTag)?.first()?.previousElement() else {
        print("Failed to find previous element")
        return
    }
    
    // 이전 요소의 텍스트 출력
    print("Previous Element Text: \(try previousElement.text())")
} catch {
    print("An error occurred: \(error)")
}

위의 코드에서 url 변수를 원하는 웹페이지의 URL로 변경하고, targetTag 변수를 원하는 태그로 설정하면 됩니다. 이전 요소를 찾게 되면 해당 요소의 텍스트를 출력합니다.

참고 문서: