[swift] SwiftSoup을 이용하여 웹페이지에서 특정 클래스를 가진 요소에 속성값을 추출하는 방법은?
- SwiftSoup 설치하기
- SwiftSoup은 Swift로 작성된 HTML 파서 라이브러리입니다. Cocoapods나 Swift Package Manager를 통해 손쉽게 설치할 수 있습니다.
- Cocoapods를 사용한다면, Podfile에 다음과 같이 추가하여 설치합니다:
pod 'SwiftSoup'
- SwiftSoup을 사용하여 웹페이지 파싱하기
- SwiftSoup을 이용하여 웹페이지를 파싱하려면, 우선 SwiftSoup을 import해야 합니다:
import SwiftSoup
- 웹페이지를 파싱하여 Document 객체를 생성합니다. 이때, 원하는 웹페이지의 URL을 사용하면 됩니다:
guard let url = URL(string: "https://example.com") else { return } guard let html = try? String(contentsOf: url) else { return } guard let doc = try? SwiftSoup.parse(html, url.absoluteString) else { return }
- 특정 클래스를 가진 요소 선택하기
- 특정 클래스를 가진 요소를 선택하기 위해, CSS 선택자를 사용합니다. 원하는 클래스 이름을 사용하여 요소를 선택할 수 있습니다:
let elements = try? doc.select(".example-class")
- 위의 예제에서는 클래스 이름이 “example-class”인 요소들을 선택하게 됩니다.
- 속성값 추출하기
- 선택된 요소의 속성값을 추출하려면,
attr(_:)
메서드를 사용하면 됩니다. 추출하려는 속성 이름을 인자로 전달하면 해당 속성값을 얻을 수 있습니다:
for element in elements { guard let attributeValue = try? element.attr("attribute-name") else { continue } print(attributeValue) }
- 위의 예제에서는 선택된 모든 요소의 “attribute-name” 속성값을 추출하여 출력합니다.
- 선택된 요소의 속성값을 추출하려면,
위의 방법을 따라 SwiftSoup을 사용하여 웹페이지에서 특정 클래스를 가진 요소에 속성값을 추출할 수 있습니다. 이를 통해 웹 데이터를 손쉽게 가져와 활용할 수 있습니다.
더 자세한 사용법과 API에 대해서는 SwiftSoup의 공식 문서를 참고하시기 바랍니다. (https://github.com/scinfu/SwiftSoup)