javaboiii의 JAVA/JAVA 예제

JAVA - 웹 클롤링(Web Crawling)

javaboiii 2024. 7. 25. 20:48

JAVA로

 

웹 크롤링

웹 크롤링은 인터넷 상의 웹 페이지를 자동으로 탐색하고 데이터를 수집하는 과정임

크롤링엔 정적 클롤링과 동적 크롤링이 있으며

 

정적 클롤링은 웹 페이지에 접근해 페이지에 작성된 데이터만 모음 << Jsoup 사용

 

동적 크롤링은 웹 페이지가 참조하는 데이터까지 접근 가능하지만

본 서버의 데이터를 암호화 했다면 접근이 불가능함 << 셀레니움 사용

 

본인은 Jsoup을 사용함

 

[ 코드 ]

// [웹 클롤링]
public class Test01 {
	public static void main(String[] args) {
		
		String url ="https://ae-ae.kr/product/list.html?cate_no=42";
		// 웹 페이지에서 "index"란 표지 페이지(첫 페이지)를 의미
	
		Connection conn = Jsoup.connect(url);
		// Jsoup으로 연결시도
		// 연결 객체가 반환됨
	
		// Jsoup은 JAVA의 기본 패키지가 아님
		//					라이브러리 == 소스코드모음집
		// Jsoup 라이브러리를 별도로 설치해야함
		//		.jar == JAVA아카이브 == JAVA압축파일 == 소스코드모음집 == 라이브러리 == 패키지
		
		try {
			Document doc = conn.get();
			
			Elements elems = doc.select("strong.name"); // strong태그 class이름이 name인 요소
			Elements elems2 = doc.select("li > :not([id])span"); // li 태그 안에 id가 없는 span태그 요소
			// 거기에 해당하는 요소들 =  doc.select(찾고싶은 데이터 이름);
			// cssQuery == css 언어 == css스크립트어 == css이름  == css쿼리
			// elements == 요소들
			
			for(int i=0; i<elems.size(); i++) {
				System.out.println(elems.get(i).text().substring(6));
				System.out.println(elems2.get(i).text().replaceAll("[^\\d]", ""));
			}
			
//			for(Element elem:elems) {
//				System.out.println(elem.text());
//			}
		} catch (IOException e) {
			System.out.println("연결중 에러 발생");
		}
		// Document란
		// 웹 페이지 화면을 의미
	}
}

상품의 이름과 가격을 가져옴

[ 출력 결과 ]

 

 

이거 이거 물건이구만

'javaboiii의 JAVA > JAVA 예제' 카테고리의 다른 글

JAVA - 파일 입출력 예제  (0) 2024.07.25
JAVA - MVC패턴 예제  (0) 2024.07.18
JAVA - ArrayList, Map 예제  (0) 2024.07.15
JAVA - 인터페이스 예제  (0) 2024.07.12
JAVA - [함수] 학생부 프로그램 함수화  (0) 2024.07.01