[swift] SwiftSoup을 이용해 웹페이지의 HTML을 제거하고 텍스트만 추출하는 방법은 무엇인가요?

먼저, SwiftSoup을 프로젝트에 추가해야 합니다. 이를 위해 cocoapods를 사용할 경우, Podfile에 다음과 같이 SwiftSoup을 추가합니다:

pod 'SwiftSoup'

프로젝트 폴더에서 pod install명령어를 실행해 SwiftSoup을 설치하고, 프로젝트를 업데이트합니다.

다음으로, SwiftSoup을 사용하여 텍스트를 추출할 웹페이지의 HTML을 가져옵니다. 예를 들어, Alamofire을 사용하여 웹페이지의 HTML을 가져오는 경우 다음과 같이 작성할 수 있습니다:

import SwiftSoup
import Alamofire

func fetchHTML(urlString: String, completion: @escaping (Result<String, Error>) -> Void) {
    AF.request(urlString).responseString { response in
        switch response.result {
        case .success(let html):
            completion(.success(html))
        case .failure(let error):
            completion(.failure(error))
        }
    }
}

let urlString = "https://www.example.com"
fetchHTML(urlString: urlString) { result in
    switch result {
    case .success(let html):
        do {
            let doc = try SwiftSoup.parse(html)
            let text = try doc.text()
            print(text)
        } catch {
            print("Parsing error: \(error)")
        }
    case .failure(let error):
        print("Network request error: \(error)")
    }
}

위의 예시 코드에서, fetchHTML 함수는 주어진 URL로부터 HTML을 비동기적으로 가져오는 역할을 합니다. 성공적으로 HTML을 가져온 경우, SwiftSoup.parse(html)을 통해 HTML을 파싱한 후, doc.text()를 사용하여 텍스트만 추출합니다. 예외처리를 위해 trycatch를 사용하고 있습니다.

이제, doc.text() 메소드로 추출한 텍스트를 원하는 방식으로 사용하실 수 있습니다.