본문 바로가기
백엔드/Spring

[spring] jsoup으로 사이트 크롤링하기

by 작은소행성 2021. 9. 30.

먼저 Jsoup 을 사용하기 위해서 build.gradle 에 jsoup 내용을 적는다. 

 

dependencies {
    // https://mvnrepository.com/artifact/org.jsoup/jsoup
    implementation 'org.jsoup:jsoup:1.13.1'
}

 

 

 

 

파라메터로 keyword값을 받아와서 사용한다. 

키워드값 가져오는 것은 설명하지 않겠다. 

 

> 네이버 기사

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


@RequestMapping("jsoupcrawler")
public String jsoupCrawler(Model model, @RequestParam String keyword){

        String apiUrl = "https://search.naver.com/search.naver?query="+keyword
                +"&where=news&ie=utf8&sm=nws_hty";
        Document doc = null;
        System.out.println("apiUrl > "+apiUrl);

        try {
            doc = Jsoup.connect(apiUrl).get();
        }catch (Exception e){
            System.out.println(e);
        }

        ArrayList<String> al1 = new ArrayList<>();

        Elements elements1 = doc.select(".news_tit");
        System.out.println("elements "+elements1);
        String href;
        String title2;
        for(Element el:elements1){

            href = el.select("a").attr("href");
            System.out.println("href "+href);
            title2 = el.select("a").attr("title");
            System.out.println("title1 "+title2);
            al1.add(href);
        }
        System.out.println("al1 > "+al1);

        return "jsoupsearch";
}

 

결과

 

 

 

 

구현을 위해 설명은 네이버 기사 url 로 했지만 네이버에서는 검색api 를 제공하고 있기 때문에 api 신청해서 사용하면 된다. 

 

 

반응형