java만을 이용한 데이터 크롤링
https://hhyyyjun.tistory.com/238
[프로젝트] 데이터 크롤링(img 부분 업데이트)
프로젝트에 사용될 데이터를 크롤링하기 위해 여러 중고차 사이트를 참고하였음 but 대부분의 사이트에서 크롤링 시 크롤링을 못하게 막아두었고, 보배드림 중고차 사이트에서 유일하게 가능하
hhyyyjun.tistory.com
앞서 데이터 크롤링을 Java로 먼저 진행해보았다.
프로젝트에는 웹 실행 시 크롤링을 진행하여 데이터를 받아올 예정이므로 리스너 서블릿을 활용하였다.
리스너 설정
웹 어플리케이션이 실행될 때 서블릿이 감지하고 동작하여 크롤링 메서드 실행

형광펜 - DB에 크롤링 데이터가 존재하는지 확인(바로 밑에 관련코드)
DB에 데이터가 존재하는지 확인
final String sql_sample = "SELECT COUNT(*) AS CNUM FROM CAR";
//샘플데이터 확인 메서드
public boolean hasSample(CarVO vo) {
conn = JDBCUtil.connect();
try {
pstmt = conn.prepareStatement(sql_sample);
ResultSet rs = pstmt.executeQuery();
rs.next();
int cnum = rs.getInt("CNUM");
if (cnum >= 1) { //데이터가 1개 이상 존재한다면
return true;
}
return false;
} catch (SQLException e) {
e.printStackTrace();
return false;
} finally {
JDBCUtil.disconnect(pstmt, conn);
}
}
sql문 Count 를 사용하여 개수 확인한다.
웹으로 확인
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>크롤링 시작</h1>
<c:forEach var = "v" items="${datas}">
상품 제목 : ${v.ctitle}<br>
상품 설명 : ${v.csubtitle}<br>
연식 : ${v.cyear}<br>
연료 : ${v.cfuel}<br>
주행거리 : ${v.ckm}<br>
가격 : ${v.cprice}<br>
지역 : ${v.ccity}<br>
이미지 url : ${v.cimg}<br>
<hr>
</c:forEach>
</body>
</html>

JTSL 라이브러리를 사용하여 출력해보았고, 웹에 데이터가 제대로 출력되는 것을 확인하였다.
'프로젝트 & 실습 > VarChar_JSP_ver_Proj' 카테고리의 다른 글
[프로젝트] 아이디 중복검사 (0) | 2023.01.08 |
---|---|
[프로젝트] 정렬기능 추가&필터검색 후 필터검색 값 유지하기 (0) | 2023.01.08 |
[프로젝트] 필터 검색을 통해 원하는 정보 출력하기(ft. FrontController) (0) | 2023.01.08 |
[프로젝트] 데이터 크롤링(img 부분 업데이트) (1) | 2023.01.08 |
[프로젝트] 중고차 사이트 스토리보드 v1.1 (0) | 2023.01.08 |
댓글