Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- java
- JPA
- docker
- git pat
- 오블완
- db종류
- IntelliJ
- analytics4
- ci/cd
- git branch 삭제
- 도커이미지
- datagrip
- spring
- 티스토리챌린지
- gtihub
- 11월순위
- 명령어
- Python
- codeium
- JPQL
- 애널리틱스4
- DBMS
- 르세라핌
- docker 명령어
- bigquery
- 컬렉션프레임워크
- pat발급
- 데이터내보내기
- ANTIFRAGILE
Archives
- Today
- Total
hanker
Java - 웹 크롤링 이미지 파일 다운로드(Web Crawling img Download) - jsoup (2) 본문
반응형
Image 파일 다운로드 하는 방법
이전글 확인
https://hanke-r.tistory.com/161
이전글에 이어서 이번에는 다운로드하는 방법이다.
<index.html>
<body>
<button type="button" id="crawlingImgDown">Download</button>
<h2>Web crawler</h2>
<span class="web-crawling"></span>
<script>
$(function(){
$.ajax({
url : "/crawling",
type : "GET",
dataType : "json",
success : function (rs) {
var html = "";
html = rs.images;
$(".web-crawling").append(html);
}
});
$("#crawlingImgDown").click(function(){
$.ajax({
url : "/getCrawlingImageDownload",
type : "POST",
success : function(rs){
console.log(rs);
}
});
});
});
</script>
</body>
- 이전 코드와는 달리 button과 button 클릭시 이벤트 처리를 추가했다.
<MainController.java>
@PostMapping("/getCrawlingImageDownload")
public String getCrawlingImageDownload(){
mainService.imgDownload();
return "jsonView";
}
return "jsonView" 처리는
https://hanke-r.tistory.com/71
<MainService.java>
public void imgDownload() {
try{
Connection conn = Jsoup.connect(CRAWLING_URL);
Document html = conn.get();
Elements imageUrlElements = html.getElementsByTag("img");
for(Element image : imageUrlElements) {
String imgURL = image.getElementsByAttribute("src").attr("src");
if (!"".equals(imgURL) && (imgURL.startsWith("http://") || imgURL.startsWith("https://"))) {
System.out.println("The address of the picture downloaded: " + imgURL);
downImages(DIR, imgURL);
}
}
} catch(Exception e){
e.printStackTrace();
}
}
private static void downImages(String dir, String imgURL) {
String[] fileName = imgURL.substring(imgURL.lastIndexOf("/")).split("/");
File files = new File(dir);
if(!files.exists()){
files.mkdir();
}
try{
URL url = new URL(imgURL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream is = connection.getInputStream();
System.out.println("fileName = " + fileName[1]);
File file = new File(dir + "/" + FILE_NUM + "_"+ fileName[1]);
FILE_NUM++;
FileOutputStream out = new FileOutputStream(file);
int i = 0;
while((i=is.read()) != -1){
out.write(i);
}
is.close();
out.close();
} catch(Exception e){
e.printStackTrace();
}
}
이전글 MainService에 추가해주면 된다.
결과
반응형
'SPRING' 카테고리의 다른 글
@ModelAttribute 어노테이션 (0) | 2022.06.07 |
---|---|
Spring - WebMvcConfigurerAdapter' is deprecated (0) | 2021.11.10 |
Java - 웹 크롤링(Web Crawling) - jsoup (1) (0) | 2021.11.09 |
Spring boot - 이메일 전송 (2) (0) | 2021.10.07 |
Spring Boot - 이메일 전송(1)(JavaMailSender) (2) | 2021.10.04 |