프로그래밍/JAVA

[Java] 크롤링(Crawling)

하와이블루 2022. 8. 17. 12:26
728x90

 

 

Crawling 혹은 scraping은 인터넷 또는 컴퓨터에 나눠 저장되어있는 문서를 수집 및 추출하여 색인으로 포함시키는 기술이다.

 

크롤링하는 프로그램을 크롤러(crawler)라고 부른다.

 

크롤링 하기위해서는 https://jsoup.org/download 페이지에서 관련 라이브러리를 다운받으면된다.

 

Download and install jsoup

Download and install jsoup jsoup is available as a downloadable .jar java library. The current release version is 1.15.2. What's new See the 1.15.2 release announcement for the latest changes, or the changelog for the full history. Previous releases of jso

jsoup.org

 

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.util.Iterator;


public class Crawling1 {
    public static void main(String[] args) {
        String url = "http://www.cgv.co.kr/movies/";
        System.out.println("접속 주소 :" + url);

        Document doc = null;
        try{
            // url를 통해 홈페이지에 접속하여 html 정보들을 불러옴
            doc = Jsoup.connect(url).get();

            Elements elements = doc.select("div.sect-movie-chart");
            // div 태그의 sect-movie-chart인 클래스를 불러옴
            
            Iterator<Element> rank = elements.select("strong.rank").iterator();
            Iterator<Element> title = elements.select("strong.title").iterator();
            // 원하는 데이터를 리스트 형태로 가져와 Iteratoer로 담아주게된다.

            while(rank.hasNext()){
                System.out.println(rank.next().text() + " : " + title.next().text());
            	// hasNext()를 활용하여 다음 데이터의 유무를 확인하고 
                // next()를 활용하여 다음 데이터로 이동하여 text()를 받아온다. 
            }


        }catch (Exception e){
            e.printStackTrace();
        }

    }
}

F12로 Elements 확인
Crawling 실행 결과

Iterator  반복자의 의미로 배열 따위의 자료구조 안을 돌면서 들어있는 데이터에 접근할 수 있게 해주는 객체이다.

Iterator는 컬렉션에서 요소를 제어하는 기능이 있으며, next(), previous() 메소드를 사용하여 앞 뒤로 이동하는 기능과 hasNext() 메소드를 사용해서 더 많은 요소가 있는지 확인하는 기능을 제공한다.

 

 

 

 

728x90