본문 바로가기
Java

Java] 간단한 이미지 크롤러 만들기

by 완기 2020. 12. 3.
728x90
반응형

요새 통 회사 다니느라 정신없어서 만들어보고 싶었던 이미지 크롤러를 만들 시간이 없었고, 사실 좀 귀찮았다...

 

그래서 최대한 간단하게 만들어보려고 했다.

 

개발환경은 텍스트 마이닝할 때와 다르지 않다. 보러 가기(새창)

 

코드는 이 곳에 공개되어 있습니다.


개발환경 : 

    intelli j ultimate 

    jquery

    spring boot 2.3

    jsp

 

 

 


시작은 언제나 그렇듯 URL을 입력받을 인풋 박스를 하나 준비한다.

 

사이트를 확대해보면 이미지가 잘 크롤링이 됐다.

 

 

코드는 상당히 간단하다.

 

 

 

 

클라이언트 코드 (AJAX로 비동기 통신)

$(function () {
    $(".send").click(function () {
        var value = $(".input").val(); //사용자의 입력 URL
        $.ajax({
            type: 'post',
            url: '/gather',
            dataType: 'json',
            data: {
                url: value
            },
            success: [ //성공시 이미지 append
                function (data) {
                    console.log(data);
                    for (let i = 0; i < data.length; i++) {
                        $(".get-img").append(`<img src="${data[i]}"><br><a href="${data[i]}" download>download img</a><br><br>`);
                    }
                }

            ]
        });
    });
});

 

 

 

서버 코드 

 @PostMapping("/gather")
@ResponseBody
public List<String> getIMG(String url) throws IOException {
        List<String> list = new ArrayList<>();
        Document doc = Jsoup.connect(url).get(); //사용자의 입력 URL을 가져옴
        Elements img = doc.getElementsByTag("img"); //img태그 요소만 가져옴
        for (Element e : img)
            list.add(e.attr("src")); //img 태그에 src에 해당하는 부분만 리스트에 넣음
        return list;      //담긴 리스트 반환
}

Element에서 src값만 가져오면 Object -> String이 되기 때문에 ArrayList에 담아서 리턴해줬다.

 

 

사실 스타일도 내서 정렬도 하고 해야 하는데, 

이런 토이 프로젝트를 할 시간이 없다. 

 

너무 간단하게 만들어서 오히려 글 올리긴 창피하지만 그래도 기록차 남긴다.

728x90
728x90

댓글