[swift] SwiftSoup을 이용해 웹페이지에서 특정 태그와 클래스, ID를 가진 자식 요소를 선택하는 방법은 무엇인가요?
- 먼저 SwiftSoup 라이브러리를 설치해야 합니다. 프로젝트의 Podfile에 다음을 추가한 후
pod install
명령어를 실행하세요.
pod 'SwiftSoup'
- SwiftSoup을 import하여 사용할 수 있도록 합니다.
import SwiftSoup
- 웹페이지의 HTML 내용을 SwiftSoup의
try!
함수를 사용하여 파싱합니다.
guard let htmlString = "<html>...</html>" else { return }
guard let doc = try? SwiftSoup.parse(htmlString) else { return }
- 원하는 태그를 선택하고, 클래스 또는 ID를 가진 요소들을 가져올 수 있습니다.
- 태그만으로 요소 선택:
let elements = try? doc.select("태그이름")
- 클래스명을 가진 요소 선택:
let elements = try? doc.select(".클래스명")
- ID를 가진 요소 선택:
let element = try? doc.select("#ID명")
- 가져온 요소에 대해서 필요한 작업을 수행합니다.
예를 들어, 클래스 명이 “content”인 div 요소들의 텍스트를 가져와 출력하는 경우:
if let elements = try? doc.select(".content") {
for element in elements.array() {
print(try? element.text())
}
}
이렇게 SwiftSoup을 사용하면 웹페이지에서 원하는 요소를 쉽게 선택하고 다양한 작업을 수행할 수 있습니다.
참고 자료:
- SwiftSoup 공식 문서: https://github.com/scinfu/SwiftSoup
- 웹 스크래핑을 위한 SwiftSoup 시작 가이드: https://www.vadimbulavin.com/web-scraping-with-swift-soup-and-foundation/