네이버 기사의 html 코드를 자바 콘솔창에 보여주고 HTML 파일로 저장시키기

안녕하세요

이번 시간에는 자바의 URI 클래스를 이용하여

네이버 기사를 복사하여 자바 콘솔창에 보여주고,

HTML 파일로 저장 시켜 볼 수 있는 예제를 올려봅니다.


==========================================================


import java.io.IOException;
import java.net.*;
import java.io.*;

public class test {
public static void main(String[] args) {
//wetrNewsDetail.nhn의 nhn은 노출을 피하기 위해 논리적으로 보여주는 이름이고 실제로는 jsp 같은 파일로 구성되어 있음
String urlStr="http://weather.naver.com/news/wetrNewsDetail.nhn?pressId=056&newsId=0010377477";
try{
URL url=new URL(urlStr);
// 위의 url 주소의 프로토콜, 호스트, 포트번호, 경로, 쿼리스트링, 레퍼런스를 알아보자
System.out.println("프로토콜: "+url.getProtocol());
System.out.println("호 스 트: "+url.getHost());
System.out.println("포트번호: "+url.getDefaultPort());
System.out.println("Path  : "+url.getPath());
System.out.println("QueryString: "+url.getQuery());
System.out.println("Reference: "+url.getRef());

//위 리소스 파일을 읽어서 copy.html로 저장하고 콘솔에도 출력하자.
//소켓 연결 안해도 가능
InputStream is=url.openStream();
//BufferedReader로 필터링해서 줄단위로 읽고 출력
BufferedReader br=new BufferedReader(new InputStreamReader(is,"UTF-8"));
//콘솔 출력용
PrintWriter pw=new PrintWriter(System.out, true);
//FileWriter fw=new FileWriter("copy.html"); // 파일로 내보낼때 한글 깨짐
OutputStreamWriter fw=new OutputStreamWriter(new FileOutputStream("copy.html"));
String line="";
while((line=br.readLine())!=null){
pw.println(line);
fw.write(line+"\r\n");
fw.flush();
}
br.close();
is.close();
pw.close();
fw.close();
}catch(MalformedURLException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}

==========================================================

위 소스 코드를 실행하면 두 가지 결과가 나옵니다.



첫번째는 자바 콘솔창에 위의 url 소스의 html 코드가 출력이 됩니다.




그리고 두 번째는 copy.html 이라는 파일이 생성되고 여기에도 html 코드가 있습니다.

아무튼 알아두면 유용한 예제입니다.



댓글 없음:

댓글 쓰기