JAVA

URLConnection객체 : 웹페이지 가져오기

아이티프로 2023. 1. 24.
반응형

특정페이지를 가져올 때 간단하게 사용한다. 파이썬으로 주로 크롤링을 개발하지만 생각보다 자바로도 크롤링을 구현하는게 어렵지않다. 크롬드라이버를 써서 구현할 수도 있다. 자바의 장점은 쓰레드 구현이 쉬워서 다중으로 처리할 경우 의외로 편하다.

urlConnection

package javaStudy;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Scanner;

class URLConEx {
	public URLConEx() {
		String code = null;
		System.out.println("url 입력하세요.");
		Scanner scanner = new Scanner(System.in);
		String address = scanner.next();
		FileWriter fw = null;	
		BufferedReader webData = null;	
		try {
			URL url = new URL(address);
			URLConnection con = url.openConnection();
			webData = new BufferedReader(new InputStreamReader(con.getInputStream()));
			fw = new FileWriter("src/file.html", false);
			while ((code = webData.readLine()) != null) {
				fw.write(code);
			}
			System.out.println("The End");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				fw.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				webData.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
	
	public static void main(String[] args) {
		new URLConEx();
	}
}

열린 io리소스는 닫아야 한다.

일반적으로 IO처리 부분은 Reader, Writer, Stream등에 집중하여 코드를 검토한다.

 

URL url = new URL(address);  url주소를 받아서
URLConnection con = url.openConnection(); 페이지에 접속을 하고
webData = new BufferedReader(new InputStreamReader(con.getInputStream()));  스트림을 읽어서 버퍼에 적재

 

반응형

'JAVA' 카테고리의 다른 글

자바 hashmap  (0) 2023.01.24
자바 파일입출력  (0) 2023.01.24
자바 쓰레드  (0) 2023.01.24
자바 JDBC  (0) 2023.01.24
JAVA JSONObject  (0) 2023.01.23

댓글