반응형
일일 배움을 위한 Today I Learned !
java Spring Framework에서 웹 크롤링 하는 것과 딥러닝 하는 것을 공부했습니다.
어제 CGV를 웹 크롤링하는 것을 이어서 오늘은 학교 식단을 웹 크롤링으로 정보를 가져왔고 코드는 참고해서 했습니다.
package poly.service.impl;
import java.util.Iterator;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Service;
import poly.dto.FoodDTO;
import poly.persistance.mapper.IFoodMapper;
import poly.service.IFoodService;
import poly.util.CmmUtil;
import poly.util.DateUtil;
@Service("FoodService")
public class FoodService implements IFoodService {
private Logger log = Logger.getLogger(this.getClass());
@Resource(name = "FoodMapper")
private IFoodMapper foodMapper;
@Override
public int getFoodInfoFromWEB() throws Exception {
log.info(this.getClass().getName() + ".getMovieInfoFromWEB start !");
//크롤링 결과 (0보다 크면 크롤링 성공)
int res = 0;
// 학식 가져올 주소
String url = "https://www.kopo.ac.kr/kangseo/content.do?menu=262";
//JSOUP 라이브러리를 통해 사이트 접속되면, 그 사이트 전체 HTML 소스 저장할 변수
Document doc = null;
//사이트 접속 (http 프로토콜만 가능, https 프로토콜은 보안상 안 된다.)
doc = Jsoup.connect(url).get();
// 학교 웹 페이지에서 가져올 부분의 코드만 뗴어 온다.
Elements element = doc.select("table.tbl_table tbody");
Iterator<Element> food_list = element.select("tr").iterator(); //영화 순위
FoodDTO pDTO = null;
int a = 0;
while(food_list.hasNext()) {
if(a>4) {break;} // 월~금 데이터만 가져오기 위해서 if문을 통해 제어한다.
pDTO = new FoodDTO(); //수집된 학식 정보를 DTO에 저장하기 위해 메모리에 올리기
//수집 시간을 기본키로 사용
pDTO.setCollect_time(DateUtil.getDateTime("yyyyMMdd24hmmss"));
//영화 순위(trim함수 추가 이유 : trim 함수는 글자의 앞,뒤 공백 삭제 역할을 수행하여, 데이터 수집시, 홈페이지 개발자들을 앞뒤 공백 집어넣을 수 있어서 추가)
String food_day = CmmUtil.nvl(food_list.next().text()).trim(); // No.1 들어옴
pDTO.setFood_nm(CmmUtil.nvl(food_day));
pDTO.setDay(CmmUtil.nvl(food_day.substring(0,3)));
// 등록자
pDTO.setReg_id("admin");
//학식 정보를 한개씩 추가
res += foodMapper.InsertFoodInfo(pDTO);
a++;
}
log.info(this.getClass().getName() + ".getFoodInfoFormWEB end !");
return res;
}
}
주로 내용은 주석에 달았습니다.
2021.10.26 - [Framework/Spring Framework] - [Spring Framework] : 웹 크롤링(수집)하기
[Spring Framework] : 웹 크롤링(수집)하기
www.cgv.co.kr/movies/ 위에 링크에 있는 CGV 영화 정보를 크롤링 하는 것을 목표로 합니다. 인터넷 브라우저에 보여지는 사이트는 모두 HTML을 인터넷 브라우저가 읽어서 보여주는데 이런 특징을 활용
ohju.tistory.com
-
웹 크롤링 복습을 끝내고 딥러닝 진도에 들어갔습니다.
2021.10.27 - [Framework/Spring Framework] - [Spring Framework] : 딥러닝 (이미지 인식)
[Spring Framework] : 딥러닝 (이미지 인식)
딥러닝 지도 학습은 문제지랑 답을 준다고 생각하면 되고 강화 학습은 문제지를 주고 스스로 답을 찾게 한다고 보면 됩니다. 여기서 머신 러닝은 지도 학습이라 볼 수 있고 딥러닝은 비지도학습
ohju.tistory.com
반응형
'발전소 > [T.I.L] : Today I Learned' 카테고리의 다른 글
[T.I.L] : 04 (0) | 2021.10.29 |
---|---|
[T.I.L] : 03 (0) | 2021.10.28 |
[T.I.L] : 01 (0) | 2021.10.26 |
14 . 코딩 테스트 알고리즘 문제를 풀기 시작하다. (0) | 2021.09.17 |
13 . 공모전 마무리 작업에 들어가다. (0) | 2021.09.06 |
댓글