본문 바로가기
발전소/[T.I.L] : Today I Learned

[T.I.L] : 02

by 오주현 2021. 10. 27.
반응형

일일 배움을 위한 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

댓글