package itn.let.mjo.test.web; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import itn.com.cmm.EgovMessageSource; import itn.com.cmm.LoginVO; import itn.com.cmm.service.EgovFileMngUtil; import itn.let.mjo.payva.service.VacsVactService; import itn.let.mjo.payva.service.VacsVactVO; import itn.let.uss.umt.service.EgovUserManageService; import itn.let.utl.user.service.CheckFileUtil; import itn.let.utl.user.service.CheckLoginUtil; @Controller public class TestCrawlerController { //로그인 처리 @Resource(name = "checkLoginUtil") private CheckLoginUtil checkLoginUtil; //첨부파일 체크 @Resource(name = "checkFileUtil") private CheckFileUtil checkFileUtil; //가상계좌원장 @Resource(name="vacsVactService") private VacsVactService vacsVactService; //파일 체크 & 관리 @Resource(name="EgovFileMngUtil") private EgovFileMngUtil egovFileMngUtil; /** EgovMessageSource */ @Resource(name="egovMessageSource") EgovMessageSource egovMessageSource; /** userManageService */ @Resource(name = "userManageService") private EgovUserManageService userManageService; /* //파일 정보 관리 @Resource(name="EgovFileMngService") private EgovFileMngService fileMngService; */ private static final Logger logger = LoggerFactory.getLogger(TestController.class); ///////////////////////////////////////////////////////////////////////////////////////// // // // USER // // ///////////////////////////////////////////////////////////////////////////////////////// // // // ADMIN // // /** * egov sample list 페이지 * @param addrVO * @param model * @return * @throws Exception */ @RequestMapping(value= { "/uss/ion/test/TestCrawlerList.do" }) public String selectTestList( HttpServletRequest request , @ModelAttribute("searchVO") VacsVactVO vacsVactVO , ModelMap model , RedirectAttributes redirectAttributes ) throws Exception { //관리자 로그인 여부 체크 String isLogin = checkLoginUtil.isAdminLogin4PageMove(redirectAttributes); if (!"Y".equals(isLogin)) return isLogin; //로그인 정보 획득 LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); //login 정보 model.addAttribute("loginVO", loginVO); //ajax를 위한 현재 URL 정보 받기 vacsVactVO.setUrl(request.getRequestURI()); return "/uss/ion/test/TestCrawlerList"; } /** *egov file 업로드시 사용자 제약 관리 페이지 * * @param boardVO * @param board * @param model * @return * @throws Exception */ @RequestMapping(value= { "/uss/ion/test/insertTestCrawlerAjax.do" } ) public void insertTestFileList( HttpServletRequest request , HttpServletResponse response //, final MultipartHttpServletRequest multiRequest //, ModelMap model , ModelAndView modelAndView , RedirectAttributes redirectAttributes ) throws Exception { String p_url = request.getParameter("url"); String p_page_start = request.getParameter("page_start"); String p_page_end = request.getParameter("page_end"); int i_start = Integer.parseInt(p_page_start); int i_end = Integer.parseInt(p_page_end); String p_param0 = request.getParameter("param0"); String p_param1 = request.getParameter("param1"); String p_param2 = request.getParameter("param2"); String p_param3 = request.getParameter("param3"); String p_param4 = request.getParameter("param4"); String p_param5 = request.getParameter("param5"); String p_pre_detailPage = request.getParameter("pre_detailPage"); String p_detailPage = request.getParameter("detailPage"); String p_detailPageAttr = request.getParameter("detailPageAttr"); String p_target1 = request.getParameter("target1"); String p_target2 = request.getParameter("target2"); String p_target3 = request.getParameter("target3"); String p_target4 = request.getParameter("target4"); String p_target5 = request.getParameter("target5"); String p_target6 = request.getParameter("target6"); String p_target7 = request.getParameter("target7"); String p_target8 = request.getParameter("target8"); String p_target9 = request.getParameter("target9"); String p_target10 = request.getParameter("target10"); String p_target1attr = request.getParameter("target1attr"); String p_target2attr = request.getParameter("target2attr"); String p_target3attr = request.getParameter("target3attr"); String p_target4attr = request.getParameter("target4attr"); String p_target5attr = request.getParameter("target5attr"); String p_target6attr = request.getParameter("target6attr"); String p_target7attr = request.getParameter("target7attr"); String p_target8attr = request.getParameter("target8attr"); String p_target9attr = request.getParameter("target9attr"); String p_target10attr = request.getParameter("target10attr"); //상세 url 가져오기 List l_infoUrl = new ArrayList(); List l_target1 = new ArrayList(); List l_target2 = new ArrayList(); List l_target3 = new ArrayList(); List l_target4 = new ArrayList(); List l_target5 = new ArrayList(); List l_target6 = new ArrayList(); List l_target7 = new ArrayList(); List l_target8 = new ArrayList(); List l_target9 = new ArrayList(); List l_target10 = new ArrayList(); { String s_url = p_url+"?"; Document doc = null; //Document에는 페이지의 전체 소스가 저장된다 if (!"".equals(p_param1)) s_url = s_url + p_param1 + "&"; if (!"".equals(p_param2)) s_url = s_url + p_param2 + "&"; if (!"".equals(p_param3)) s_url = s_url + p_param3 + "&"; if (!"".equals(p_param4)) s_url = s_url + p_param4 + "&"; if (!"".equals(p_param5)) s_url = s_url + p_param5 + "&"; for (int i=i_start;i<=i_end;i++) { String s_in_url = ""; if (!"".equals(p_param0)) s_in_url = s_url + p_param0 + "=" + Integer.toString(i); //2.페이지 호출 doc = Jsoup.connect(s_in_url).get(); //3.상세 url 추출 Elements element = doc.select(p_detailPage); for (int j=0;j extractData( Document p_doc , String p_target1 , String p_target1attr , List l_target1 ) throws Exception{ //Document doc = null; //Document에는 페이지의 전체 소스가 저장된다 //doc = Jsoup.connect(p_call_url).get(); //System.out.println(p_call_url); //attr 값이 있으면 attr로 추출하고 아니면 text 값을 추출한다. if (!"".equals(p_target1attr)) l_target1.add(p_doc.select(p_target1).get(0).attr(p_target1attr)); else l_target1.add(p_doc.select(p_target1).get(0).text()); return l_target1; } private void makeExcelData( int i_cell_size , Row p_row , CellStyle p_style , String p_val ) throws Exception{ Cell cell = p_row.createCell(i_cell_size++); cell.setCellStyle(p_style); cell.setCellValue(p_val); //번호 } }