투케이2K

292. (ios/swift) SwiftSoup 라이브러리 사용해 웹 페이지 , html 데이터 파싱 수행 실시 본문

IOS

292. (ios/swift) SwiftSoup 라이브러리 사용해 웹 페이지 , html 데이터 파싱 수행 실시

투케이2K 2022. 11. 16. 19:20

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[사전 설정]

 

[소스 코드]

    // MARK: - [테스트 메인 함수 정의 실시]
    func testMain() {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> testMain() :: 테스트 함수 시작 실시]")
        print("====================================")
        print("")
        
        
        /*
         -------------------------------
         [요약 설명]
         -------------------------------
         1. 설 명 : html 데이터 파싱 수행 라이브러리
         -------------------------------
         2. 설치 주소 git 사이트 : https://github.com/scinfu/SwiftSoup
         -------------------------------
         3. 필요 import 설정 :
         
         import SwiftSoup
          ------------------------------------
         */
        
        
        // [로직 처리 수행]
        DispatchQueue.main.async {
            
            // [파싱을 수행할 html string 생성]
            let htmlString = "<html>\n" +
            "  <head>\n" +
            "    <title>Try Html Parse</title>\n" +
            "  </head>\n" +
            "  <body>\n" +
            "    <p>hello my name is twok</p>\n" +
            "    <p>안녕하세요 투케이입니다</p>\n" +
            "  </body>\n" +
            "</html>"
            
            
            do {
                
                // [html 데이터 파싱 수행]
                let doc: Document = try SwiftSoup.parse(htmlString)
                
                
                // [html 내용 출력 실시]
                let html = try doc.text()
                
                
                // [특정 첫번째 태그 선택 : p 태그]
                let tag: Element = try doc.select("p").first()!
                
                
                // [텍스트 내용 출력 실시]
                let text = try tag.text()
                
                
                // [로그 출력 실시]
                print("")
                print("====================================")
                print("[\(self.ACTIVITY_NAME) >> testMain() :: 로그 출력 실시]")
                print("html :: \(html)")
                print("text :: \(text)")
                print("====================================")
                print("")
                
            } catch Exception.Error(let type, let message) {
                print("")
                print("====================================")
                print("[\(self.ACTIVITY_NAME) >> testMain() :: Exception]")
                print("type :: \(type)")
                print("message :: \(message)")
                print("====================================")
                print("")
            } catch {
                print("")
                print("====================================")
                print("[\(self.ACTIVITY_NAME) >> testMain() :: Exception]")
                print("error :: \(error.localizedDescription)")
                print("====================================")
                print("")
            }
        }

    }
 

[결과 출력]

 

 

반응형
Comments