[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의 문서를 참고하시기 바랍니다.
참고문서: