| 웹페이지 파싱하기… JDK의 swing 패키지에는 html을 파싱 하는 기능이 포함되어 있는데 이기능을 적절히 이용하면 웹 페이지에서 원하는 내용을 추출 할 수 있을 것입니다. 다음의 예제를 보시면 html Tag중에서 원하는 태그의 내용을 간단히 파싱하는 것을 확인 할 수 있으니 참고 하시기 바랍니다… [예제 – HTMLParsing.java] import! javax.swing.text.html.HTMLEditorKit; import! javax.swing.text.html.HTML; import! java.io.InputStreamReader; import! java.net.URL; import! java.net.HttpURLConnection; import! javax.swing.text.MutableAttributeSet; import! javax.swing.text.html.parser.ParserDelegator; /* * Created on 2005. 2. 26 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ /** * @author 이종철 * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class HTMLParsing { //파서는 콜백 형식으로 되어 있다. 각 태그가 들어 올때 적절한 메소드가 호출됨 private class CallbackHandler extends HTMLEditorKit.ParserCallback { //태그가 시작할 때 호출 되는 메소드 public void handleStartTag(HTML.Tag tag, MutableAttributeSet a, int pos) { //<A href 인 경우... A태그를 찾는다... if (tag == HTML.Tag.A) { System.out.println(a.getAttribute(javax.swing.text.html.HTML.Attribute.HREF)); } } //텍스트가 들어올때 호출되는 메소드 public void handleText(char[] data, int pos) { System.out.println(data); } } public void parse(String str) { String content = null; try { //입력받은 URL에 연결하여 InputStream을 통해 읽은 후 파싱 한다. URL url = new URL(str); HttpURLConnection con = (HttpURLConnection)url.openConnection(); InputStreamReader reader = new InputStreamReader(con.getInputStream(),"euc-kr"); new ParserDelegator().parse(reader, new CallbackHandler(), true); con.disconnect(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { HTMLParsing parser = new HTMLParsing(); parser.parse("http://www.oraclejava.co.kr"); } } [결과] ..….. …… [프로젝트] TOAD를 만들자! DRM For P2P http://oraclejava.co.kr/zboard/zboard.php?id=notice [이종철] http://oraclejava.co.kr/zboard/view.php?id=notice&no=60 비트캠프 교육 과정 소개 2005/02/19?? [이종철] http://oraclejava.co.kr/zboard/view.php?id=notice&no=48 설날 잘 보내세요~ [1] 2005/02/04?? [이종철] http://oraclejava.co.kr/zboard/view.php?id=notice&no=45 New 프로젝트 연재! 2005/01/24?? [이종철] http://oraclejava.co.kr/zboard/view.php?id=notice&no=44 스트럿츠 게시판 강좌가 마무리 ... 2005/01/20?? [이종철] http://oraclejava.co.kr/zboard/view.php?id=notice&no=43 토드(TOAD)를 만들어 볼까요?... [2] 2005/01/18?? http://oraclejava.co.kr/zboard/zboard.php?id=freeboard [이종철] http://oraclejava.co.kr/zboard/view.php?id=freeboard&no=70 회원등록 700명 돌파...^^ …… …… |
TAG웹페이지 파싱