jsoup lib를 이용하여 크롤링 연습하기

 

소스 다운 및 참고사이트 : https://jsoup.org/

 

public class CommonCrolling {
    private final static String USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36";
   
    public static String getCurrentData(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
        return sdf.format(new Date());
    }
   
    public static void main(String[] args) {
        try {
            System.out.println("############################################## Start Time : " + getCurrentData());
            // 1. URL 선언
            String connUrl = "http://www.daum.net";
           
            // 2. HTML 가져오기
            Connection conn = Jsoup
                    .connect(connUrl)
                    .header("Content-Type", "application/json;charset=UTF-8")
                    .userAgent(USER_AGENT)
                    .method(Connection.Method.GET)
                    .ignoreContentType(true);
           
            Document doc = conn.get();
           
            // 3. 가져온 HTML Document 를 확인하기
            //System.out.println(doc.toString());
            System.out.println(doc.select(".list_stxt").toString());
           
        } catch (IOException e) {
            // Exp : Connection Fail
            e.printStackTrace();
        }
        System.out.println("############################################## End Time : " + getCurrentData());
    }
}

 

반응형

/* 뺑뺑이 만들기
    각 중학교 1차원 배열
 * 문제) 2009년도 대전 시내 초등학교 졸업생이 200명이다. (0~199번) 이 학생들을
        대전중학교에 45명, 한밭중학교에 40명, 갈마중학교에 30명, 둔산중학교에 50명,
        성모중학교에 35명을 배정하라. 그리고 위와 같이 학교별 배정 학생번호 리스트와
        학번별 학교배정 리스트를 출력하시오.
 */

 

public class HomeWork02 {
    public static void main(String[] args) {
        int[] 학번 = 학생번호(200);
        int[] 배당학교 = 뺑뺑이(학번);
        int num = 0;
        for(int i = 0 ; i < 중학교.length ; i++){
            HomeWork02 hw = new HomeWork02();
            System.out.println("============================================================================");
            System.out.println("학교명 : " + 중학교[i]);
            System.out.println("============================================================================");
            for(int j = 0 ; j < 학번.length ; j ++){
                if(배당학교[j] == i){
                    System.out.print(학번[j] + "\t");
                    num += 1;
                    if(num % 10 == 0) System.out.println(" ");
                }
            }
            System.out.println("학생수 : " + num);
            num = 0;
            System.out.println("============================================================================");
            System.out.println(" ");
            System.out.println(" ");
        }
        System.out.println("============================================================================");
        System.out.println("\t번호\t학교번호\t학교명\t누적학생수");
        System.out.println("============================================================================");
        int[] 누적학생수 = new int[중학교.length];   
        for(int i = 0 ; i < 학번.length ; i++){
            for(int j = 0 ; j < 중학교.length ; j++){
                if(j == 배당학교[i]){
                    누적학생수[j] += 1;
                    System.out.printf("%10d\t%8d\t%6s\t%6d\n", 학번[i], 배당학교[i], 중학교[j], 누적학생수[j]);          
                }else{
                  
                }
            }
        }
        System.out.println("============================================================================");     
    }
    static int[] 뺑뺑이(int[] a){                   
        int[] x = new int[a.length];                                // 학교배정 x
        int 대전중학생수 = 0, 한밭중학생수 = 0, 갈마중학생수 = 0,
                둔산중학생수 = 0, 성모중학생수 = 0;
        int total = 0;
        while(total < a.length){
     gogo : for(int i = 0 ; i < a.length ; i++){
                x[i] = (int)(Math.random()*5);
                if(x[i] == 0){
                    if(대전중학생수 >= 45){
                        i = i - 1;
                        continue gogo;
                    }else{
                        대전중학생수 += 1;
                    }
                }
                else if(x[i] == 1){
                    if(한밭중학생수 >= 40){
                        i = i - 1;
                        continue gogo;
                    }else{
                        한밭중학생수 += 1;
                    }
                }
                else if(x[i] == 2){
                    if(갈마중학생수 >= 30){
                        i = i - 1;
                        continue gogo;
                    }else{
                        갈마중학생수 += 1;
                    }
                }
                else if(x[i] == 3){
                    if(둔산중학생수 >= 50){
                        i = i - 1;
                        continue gogo;
                    }else{
                        둔산중학생수 += 1;
                    }
                }
                else{
                    if(성모중학생수 >= 35){
                        i = i - 1;
                        continue gogo;
                    }else{
                        성모중학생수 += 1;
                    }
                }
            }
                total = 대전중학생수 + 한밭중학생수 + 갈마중학생수 +
                    둔산중학생수 + 성모중학생수;   
        }
        return x;                            
    }
    static int[] 학생번호 (int a){
        int[] 번호 = new int[a];
        for(int i = 0 ; i < a ; i++){           // 학생번호 생성
            번호[i] = i;
        }
        return 번호;
    };
    static String[] 중학교 = new String[]{
        "대전중학교", "한밭중학교", "갈마중학교", "둔산중학교", "성모중학교"
    };
}

 

반응형

https://www.16personalities.com/ko

 

무료성격유형검사인데 깔끔하고 맞는듯하네요^^;

반응형

+ Recent posts