JAVA Spring 웹크롤링

윤슬·2025년 9월 23일

웹 크롤링 정리

1. 웹 크롤링 정의

  • 인터넷 웹 페이지에서 원하는 데이터(html)를 수집하는 기술

2. 웹 페이지 구동 원리

2-1. 정적 페이지

  • HTML 소스에 데이터가 있는 경우, 즉 게시물의 정보가 포함된 HTML
  • Jsoup 라이브러리 사용

2-2. 동적 페이지

  • JS가 HTML 소스에 데이터를 넣어주는 경우, 즉 게시물의 정보가 없는 HTML
  • Selenium(동적/정적) 라이브러리 사용

3. 목적

  1. 데이터 수집 : 뉴스, 상품, 날씨, 위치 등
  2. 데이터 분석 : 수집 자료 저장 → 통계 → 학습(AI)
  3. 업무 효율 : 자동 버튼 클릭, 자동 아이디/비밀번호 입력 등

4. robots.txt

  • 웹사이트 루트 경로에 있는 자동화(크롤링) 접근 규칙 파일
  • 예: https://www.daum.net/robots.txt
  • 접근 권한
    • Allow : 접근 허용
    • Disallow : 접근 금지
  • 법적 강제성은 없지만, 크롤링 1회 = REST 요청 1회 → DB 작동 → 과부하 가능

5. Jsoup

5-1. 그레이들 설치

5-2. 주요 메소드

  1. 크롤링할 웹주소 HTML을 Document 객체로 가져오기
Document document = Jsoup.connect("크롤링할웹주소").get();
  1. 특정한 마크업(요소) 가져오기
2-1) 1개일 때 : Element
Element element = document.selectFirst("css선택자");: <a href="">부평역</a>
2-2) N개일 때 : Elements
Elements elements = document.select("css선택자");: [<a href="">부평역</a>, <a href="">부천역</a>]
  1. 마크업(요소)의 데이터 가져오기
String text = element.text();: <a href="">부평역</a> ---> "부평역"
  1. 마크업(요소)의 속성값 가져오기
String attr = element.attr("속성명");: <img src="localhost:8080"/> ----> "localhost:8080"

6. Selenium + 크롬

1. 그레이들 설치 , https://mvnrepository.com/

    - 'Selenium' 검색
    	2) Selenium Java » 4.35.0
        3) implementation 'org.seleniumhq.selenium:selenium-java:4.35.0'
    - 'webdrivermanager' 검색
        2) WebDriverManager » 6.3.1
        3) implementation 'io.github.bonigarcia:webdrivermanager:6.3.1'
profile
우상향그래프

0개의 댓글