'자바'에 해당되는 글 17건

  1. 2018.08.20 [Java] 자바 웹 크롤링 - 실시간 데이터 수집 6
  2. 2018.08.17 자바 DB연동 - JDBC + MySQL


1. 개요

크롤링(Crawling) 이란? 

정식명칭은 Scraping 또는 Web Scraping 으로 웹 사이트에서 원하는 정보를 추출하는 것을 의미합니다. 보통 웹 사이트는 기본적으로 Html 기반입니다. 크롬에서 Ctrl + U 또는 우클릭 - 페이지 소스보기를 클릭하시면 다음과 같은 화면을 볼 수 있습니다.





네이버 금융 웹 사이트 소스코드


위 사진은 네이버 금융  https://finance.naver.com/ 홈페이지의 소소를 확인한 것입니다.



2. 활용

그렇다면 이 소스들을 가지고 우리는 무엇을 할 수 있을까요?

Html 소스들을 자세히 들여다 보시면 우리가 웹 사이트에서 보는 모든 정보들이 담겨있습니다.

이 정보들 중 원하는 정보만 가져와서 자신만의 프로그램에 사용하는 것 입니다.


불법아닙니까?

-> 크롤링 한 데이터를 소장하고 활용하는것 까지는 불법이 아닙니다. 다만, 영리를 위한 목적, 배포 시 문제가 될 수 있습니다. 후자의 경우 해당 사이트의 허락을 꼭 맡으시기 바랍니다.


예제로 네이버 금융 사이트에서 국제시장환율 란의 환율 데이터를 긁어와서 화면에 출력해 보겠습니다.




3. 소스코드





4. 실행화면





위 코드를 실행하면 다음과 같이 콘솔창에 크롤링 한 데이터가 출력됩니다.

프로그램에 따라 윈도우 창에 출력 할 수도 있고 변수에 저장하거나 데이터베이스에 저장 할 수 도 있겠습니다. 

사실 문자열을 조금만 다룰 줄 안다면 쉽게 처리 가능한 기술입니다. 





정보가 유익하셨다면 아래 공감버튼 눌러주시면 감사하겠습니다.

질문사항은 댓글로 달아주시면 성의껏 답변해드리겠습니다.



이번에는 Java Eclipse에서 JDBC를 통해 Mysql DB를 연동하는 방법에 대해 알아보겠습니다.

- JDBC란? Java DataBase Connectivity로 자바에서 데이터베이스에 접속 할 수 있도록 자바에서 제공하는 API입니다. 


* 환경
JDK : jdk1.8.0_171
자바 개발 툴 : eclipse-jee-oxygen-3a-win32
데이터베이스 : MySQL 5.1.41-community

* 소스코드
import java.sql.*; 

public class dbtest { 
          public static void main(String arg[]) throws Exception { 
                    Connection conn; 
                    Statement stmt; 
                    ResultSet rs; 

                    Class.forName("com.mysql.jdbc.Driver");  // JDBC driver를 메모리에 로드
                    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/DB명", 
                              "ID", "PASSWORD"); 
                    stmt = (Statement) conn.createStatement(); 
                    rs=stmt.executeQuery("SELECT * FROM TABLE명");  // 원하는 쿼리문 실행

                    while(rs.next()) { 
                              System.out.print(rs.getString("id") + " ");  
                              System.out.println(rs.getString("password")); 
                    

                    rs.close(); 
                    stmt.close(); 
                    conn.close();
          
}

코드는 매우 간단합니다.
먼저 JDBC Driver를 사용하기 위해 Class.forName을 사용하여 메모리에 등록하고
DriverManager를 통해 DB에 접속합니다.
그리고 쿼리를 준비하고 원하는 쿼리문을 실행하고 받은 데이터를 처리합니다.
마지막으로 정상적인 처리를 위해 사용한 객체들을 역순으로 닫아주면 됩니다.

위 SELECT 문 사용 예제를 통해 INSERT, DELETE, UPDATE 문을 활용하여 프로그램을 제작해 보면
어떨까요?

에러나 질문사항은 댓글로 달아주세요.



to Top