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

let html = """
<html>
<head>
    <title>Example</title>
</head>
<body>
    <div class="container">
        <h1>Hello, SwiftSoup!</h1>
        <p class="description">Welcome to the world of web scraping!</p>
        <a href="https://www.example.com">Visit Example</a>
    </div>
</body>
</html>
"""

do {
    let doc: Document = try SwiftSoup.parse(html)
    
    // 태그와 속성으로 요소 선택하기
    let links: Elements = try doc.select("a[href]")
    
    for link: Element in links {
        let linkHref: String = try link.attr("href")
        let linkText: String = try link.text()
        print("Link: \(linkText), Href: \(linkHref)")
    }
    
    // 속성과 값으로 요소 선택하기
    let containers: Elements = try doc.select("[class=container]")
    
    for container: Element in containers {
        let containerText: String = try container.text()
        print("Container Text: \(containerText)")
    }
    
} catch {
    print("Error: \(error)")
}

위의 코드는 SwiftSoup 라이브러리를 사용한 예제입니다. 먼저 SwiftSoup.parse 메서드를 사용하여 HTML 문자열을 Document 객체로 파싱합니다.

요소를 선택하기 위해서는 select 메서드를 사용해 원하는 CSS 선택자를 전달해야 합니다.

태그와 속성으로 요소를 선택하려면 태그[속성] 형식을 사용하고, 속성과 값으로 요소를 선택하려면 [속성=값] 형식을 사용합니다. 선택된 요소는 Elements 객체로 반환되며, 이를 반복문을 통해 각각의 요소에 접근하여 원하는 작업을 수행할 수 있습니다.

자세한 내용 및 다양한 CSS 선택자에 대해서는 SwiftSoup의 문서를 참고하시기 바랍니다.

참고문서: