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
'Java' 카테고리의 다른 글
JAVA]TDD(Test Driven Develop) 테스트 주도 개발 (0) | 2020.12.22 |
---|---|
시스템에 로그(Log) 남기기.(SLF4J) (0) | 2020.12.18 |
Intelli J] Cannot Create Class (0) | 2020.12.01 |
JAVA]예외(Exception) (0) | 2020.12.01 |
intelli j] Execution failed for task :~ > Could not target platform (0) | 2020.12.01 |
댓글