반응형

Jsoup을 이용한 웹 크롤링 간단 예제 입니다.

Jsoup을 사용하기 위해서는 의존성을 받아야 하는데 maven repository에서 받으면 됩니다.

 

https://mvnrepository.com/

 

Maven Repository: Search/Browse/Explore

Infinispan Hot Rod Client Last Release on Jun 15, 2020

mvnrepository.com

저는 네이버 증권 페이지에서 진행하겠습니다. 네이버 증권 페이지를 들어가고 개발자 도구에 들어가서 코스피 지수를 확인합니다.

 

코스피 지수의 태그를 선택하고 개발자 도구에서 ...을 클릭하면 그림과 같이 css selector를 클립보드로 복사 할 수 있습니다.

여기서 저는 코스피 지수와 변동지수만 가져오도록 하겠습니다.

 

KospiCrawer

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

public class KospiCrawer {
    private static final String CONNECT_URL ="https://finance.naver.com/";
    
    // 현재 코스피지수
    public String getKospi() throws Exception {
        Document document = Jsoup.connect(CONNECT_URL).get();
        Elements kospi = document.select("#content > div.article > div.section2 > div.section_stock_market > div.section_stock > div.kospi_area.group_quot.quot_opn > div.heading_area > a > span > span.num");
        return kospi.text();
    }

	// 코스피 변동지수
    public String getKospiChangeRate() throws Exception {
        Document document = Jsoup.connect(CONNECT_URL).get();
        Elements kospiChangedRate = document.select("#content > div.article > div.section2 > div.section_stock_market > div.section_stock > div.kospi_area.group_quot.quot_opn > div.heading_area > a > span > span.num2");
        return kospiChangedRate.text();
    }
}

 

copy selector로 복사한 것을 select메서드를 활용해 가져왔습니다.

 

Main

public class CrawlingApplication {

    public static void main(String[] args) throws Exception {
        KospiCrawer kospiCrawer = new KospiCrawer();
        String currentKospi = kospiCrawer.getKospi();
        String changeKospiRate = kospiCrawer.getKospiChangeRate();
        System.out.println("현재 코스피 : " + currentKospi + " 변동율 : " + changeKospiRate);
    }

}

 

결과

이처럼 Jsoup을 사용하면 간단하게 크롤링을 할 수 있다. 하지만 크롤링을 이용해 상업적으로 이용한다면 문제가 있을 수 있으니 주의하도록 하자.

반응형

+ Recent posts