ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 001. HTML 파싱하기 - 준비하기
    Java 2015. 7. 29. 14:26

    1. http://jsoup.org/download 을 방문하여 다운받는다.

    jsoup-1.8.2.jar

    2. 메이븐을 사용할 경우 pom.xml 파일의 <dependencies>에 다음을 추가한다.

    1
    2
    3
    4
    5
    6
    7
    <dependency>
      <!-- jsoup HTML parser library @ http://jsoup.org/ -->
      <groupId>org.jsoup</groupId>
      <artifactId>jsoup</artifactId>
      <version>1.8.2</version>
    </dependency>
     
    cs

    3. 문자열 파싱

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
     
    // 문자열을 입력으로 HTML파싱하기
    public class Jsoup01 {
        public static void main(String[] args) {
            // 문자열
            String html = "<html><head><title>First parse</title></head>"
                + "<body><p>Parsed HTML into a doc.</p></body></html>";
            
            // Jsoup.parse를 통한 Document객체 생성
            Document doc = Jsoup.parse(html);
            
            // 텍스트만 읽기
            String textOnly = doc.text();
            
            // 출력
            System.out.println(textOnly);
        }
    }

    4.  HTML 문서의 일부분만 있을 경우 파싱하기

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.nodes.Node;
     
    // HTML 문서의 일부분만 있을 경우 파싱하기
    public class Jsoup02 {
        public static void main(String[] args) {
            // 문자열
            String html = "<div><p><b>HTML<u>문서</b></u>의 일부분만 있을때";
            
            Document doc = Jsoup.parseBodyFragment(html);
            Element body = doc.body();
            System.out.println("tagName() : " + body.tagName());
            System.out.println("text() : " + body.text());
            
            // 모든 자식노드
            for(Node n : body.childNodes()){
                System.out.println(n);
            }
        }
    }
     
    cs


    5. URL에 있는 HTML 파싱하기

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import java.io.IOException;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
     
    // URL에 있는 HTML 파싱하기
    public class Jsoup03 {
        public static void main(String[] args) {
            
            Document doc = null;
            
            try {
     
                doc = Jsoup.connect("http://www.daum.net/").get();
                String title = doc.title();
                System.out.println(title);
     
                Element body = doc.body();
                System.out.println(body.text());
                
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }
    }
     
    cs

    6.  파일에 있는 HTML 파싱하기

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    import java.io.File;
    import java.io.IOException;
     
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
     
    // 파일에 있는 HTML 파싱하기
    public class Jsoup04 {
        public static void main(String[] args) {
            String fileName = "example.html";
            File file = new File(fileName);
            Document document = null;
            try {
                // Jsoup.parse(File in, String charsetName, String baseUri)
                // document = Jsoup.parse(file,"UTF-8","http://localhost:8080");
                document = Jsoup.parse(file,"UTF-8");

                String title = document.title();
                System.out.println(title);
                
                String body = document.body().text();
                System.out.println(body);
                
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }
    }

    cs

    example.html파일을 프로젝트 폴더에 만들어 놓는다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!doctype html>
    <html lang="ko">
     <head>
      <meta charset="UTF-8">
      <title>연습용 HTML문서</title>
     </head>
     <body>
      <h1>파일로부터 읽기</h1>
     </body>
    </html>
     
    cs


    댓글

Designed by Tistory.