본문 바로가기
IT 유용한 TIP

웹페이지 가져오기 소스 샘플 - org.jsoup.Jsoup 사용법

by 이혁진 2015. 6. 1.

어느날 문뜩......

웹페이지(HTML) 내용을 가져와 파싱해야 할 일이 생겨서......

엣날에 내가 만들어놓은 라이브러리를 사용하려 했으나......

어디있는지 몰라서.....간만에 서핑해 봤더니...


Jsoup라는 라이브러리가 생겼더군........

HTML의 Tag들을 요소화 시켜서......소스코드를 깔끔히 작성할 수 있더군.....

속도는 모르겠으나......느리지는 않는 속도...... 

누가 짰겠지......잘 잤네....

조건없는 이런 행위들이..... 각박한 세상에서 숨통이 트이게 한다.... 



========== 샘 플 ==================

import java.io.BufferedWriter;

import java.io.FileWriter;

import java.io.IOException;


import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;


public class Main {


public static void main(String[] arg) throws IOException {


// 서핑할 URL를 선택하고...

String url = "http://www.어저구저쩌구.co.kr /view.do?drwNo=";


// 파일하나 열고 

   BufferedWriter out = new BufferedWriter(new FileWriter("out4.txt"));

String s = "";

out.newLine(); 

             long sleepTime = 0; 

// 80~652page 까지 한번 돌려보자 

for (int i = 80; i <= 652; i++) {

// 위 URL에서 페이지 인자값만 바꾸어 주며....URL 열고...

Document doc = Jsoup.connect(url + i).get();


// 꼴에 사이트라고....무작성 접속하니 막는다....랜덤 접속으로...

sleepTime = (long) (Math.random()*5000);

//System.out.print("#" + sleepTime);

Thread.sleep(sleepTime);


System.out.print("#" + i);

// 홈페이지 소스를 보니....내가 원하는 값이... 

// <td device="pc" class="tbbghn"> 내가 원하는 값 </td>

// 요렇게 들어있더라....이럴때는 아래와 같이...

// 더자세한 내용은 ... http://jsoup.org/apidocs/org/jsoup/select/Selector.html

   Elements titles = doc.select("td.tbbghn");


for (Element e : titles) {

System.out.println("\t HTML:" + e.text());

// e.toString()  / 

out.write(e.text());

out.newLine();

}

}


out.close();

}

}