SwiftSoup은 Swift에서 HTML 파싱을 위한 라이브러리로, 웹페이지에서 데이터를 추출하거나 웹 크롤링을 할 때 유용하게 사용됩니다. 특히 테이블 데이터를 추출하는 경우에도 SwiftSoup을 사용하면 간편하게 구현할 수 있습니다.
아래는 SwiftSoup을 이용하여 웹페이지에서 테이블 데이터를 추출하는 예제 코드입니다.
import SwiftSoup
do {
let html = "<html><body><table><tr><th>Name</th><th>Age</th></tr><tr><td>John</td><td>25</td></tr><tr><td>Emily</td><td>30</td></tr></table></body></html>"
let doc: Document = try SwiftSoup.parse(html)
let table: Element? = try doc.select("table").first()
if let rows = try table?.select("tr") {
for row in rows {
let cells = try row.select("td")
for cell in cells {
print(cell.text())
}
}
}
} catch {
print("Error: \(error)")
}
위 예제 코드는 먼저 SwiftSoup을 import해줍니다. 그 후 예제로 사용할 html 문자열을 정의합니다. 이 문자열은 테이블 데이터를 포함한 HTML 코드입니다.
do-catch
구문을 사용하여 SwiftSoup을 사용하는 도중 발생할 수 있는 오류를 처리합니다. try
키워드를 사용하여 해당 코드 블록을 실행하며, 오류가 발생하면 catch
블록으로 이동하여 오류를 처리합니다.
try
키워드를 사용하여 SwiftSoup.parse(html)
을 호출하면 HTML 코드를 파싱하여 Document 객체를 얻을 수 있습니다. 이 Document 객체를 사용하여 원하는 요소를 선택할 수 있습니다.
table
변수에는 파싱된 HTML에서 첫 번째 <table>
요소를 할당합니다. 그 다음 if let
구문을 사용하여 <table>
안에 있는 모든 <tr>
요소를 가져옵니다. 각 <tr>
요소마다 <td>
요소를 선택하고, 그 안의 텍스트를 출력합니다.
위 코드를 실행하면 결과로 “John”, “25”, “Emily”, “30”이 순서대로 출력됩니다. 이는 테이블의 각 셀에 포함된 데이터입니다.
SwiftSoup을 사용하면 웹페이지에서 테이블 데이터를 손쉽게 추출할 수 있으며, 데이터를 활용하여 다양한 작업을 수행할 수 있습니다. 추가적인 기능 및 사용법에 대해서는 SwiftSoup의 공식 문서를 참고하시기 바랍니다.
참고 문서: https://github.com/scinfu/SwiftSoup