본문 바로가기
기술

웹크롤링과 웹스크래핑

by 해피스트 2025. 2. 28.

웹 크롤링 Web Crawling 

웹 사이트 데이터를 긁어와 저장하는 기법, 웹 스크래핑 Web Scraping 

파이썬 등을 이용해서 편리하게 데이터를 수집할 수 있다. 

하위 페이지를 차례대로 방문해 돌아다니는 모습이 거미와 비슷하다고 해서 스파이더로 불린다. 

 

크롤링과 스크래핑 차이 

크롤링는 데이터를 수집하는 것, 스크래핑은 원하는 데이터를 추출하는 것 

크롤링이 좀 더 널은 의미로 크롤링을 해서 스크래핑의 과정으로 넘어간다고 봄

외국에서는 보통 스크래핑이라는 용어를 사용한다. 

 

웹 크롤링은 예를 들자면, 검색 포털 실시간 검색어 순위 자료, 멜론 음악 차트 순위 자료, 뉴스 기사 분석, 영화 목록과 원하는 영화의 평점 정보, 주식과 암호화폐 등의 시세 정보 모니터링, 쇼핑몰 상품 정보, 도서검색 시스템 개발 등 

이렇게 수집한 데이터는 맞춤형 서비스 제공 등 여러 분야에서 활용한다.


API 가져오는 방법, 공공데이터 사용하는 방법 등 

 

웹 크롤링의 원리 이해 

웹 구조/웹 페이지의 구성에 대한 이해가 필요하다. 

웹 페이지는 HTML, CSS, JS로 구성된다. 

 

다시 이해/요약하면, 

웹 크롤링은 봇(크롤러 또는 거미)이 자동으로 웹을 탐색하여 페이지를 발견하고 색인하는 프로스세이다. 

구글과 같은 검색 엔진에서 웹사이트를 탐색하고 검새 결과를 업데이트하는데 사용된다. 

예를 들어 구글봇은 웹사이트를 크롤링하여 URL을 수집하고 순위를 매기는 데이터를 저장한다. 

웹 스크래핑은 웹사이트에서 특정 데이터를 추출하는 데 중점을 둔다. 

데이터 분석, 가격 모니터링, 뉴스 집계, 주식 시장 분석 등에 사용된다. 

예를 들면 아마존 가격을 매일 스크랩하여 가격 하락을 추적하는 스크립트를 들 수 있다. 

둘의 주요 차이점은 크롤링은 웹 페이지 찾기 및 인뎅싱 작업을 하고, 스크래핑은 해당 페이지에서 특정 데이터를 추출한다. 

 

크롤링 방지는 robots.txt 등에 대한 이해 

크롤링 방지 기술, Anti-Crawling 기술이다. 

봇, 스크래퍼, 무단 크롤러로부터 웹사이트를 보호하는데 사용된다. 

크롤링 방지 기술에는 몇 가지 방법이 있다. 

 

1. robots.txt 사용(기본 보호)

robots.txt 파일은 합법적인 크롤러(예: Googlebot)에게 접근할 수 있는 페이지와 접근할 수 없는 페이지를 알려준다. 

2. 속도 제한 및 IP 차단

요청 제한을 설정하여 하나의 IP 주소에서 과도한 스크래핑을 방지한다. 

예를 들면, 짧은 시간에 너무 많은 요청이 있을 경우 IP를 차단한다. 

WAF(웹 어플리케이션 방화벽)와 같은 Cloudflare를 사용하여 봇을 탐지하고 차단한다. 

3. 캡차 및 로그인 요구 사항 

Google reCAPTCHA 또는 hCAPTCHA는 퍼블이나 이미지 선택을 통해 봇에 도전한다. 

사용자가 민감한 데이터에 엑세스하기 전에 로그인하도록 요구한다. (익명 스크래에퍼 방지)

4. 자바스크립트 렌더링 및 동적 콘텐츠 

JavaScript 뒤에 주요 데이터를 숨긴다. 

예를 들면 AJAX를 사용하여 콘텐츠를 동적으로 로드한다. 

스크래퍼는 셀레늄 Selenium과 같은 헤드리스 브라우저를 사용하지 않는 한 데이터를 추출하는 데 어려움을 겪을 수 있다. 

5. 꿀단지 (봇 트랩) 

사용자가 절대 보지 못하는 숨겨진 링크를 배치하거나 필드를 형성한다. 

봇과 상호 작용하면 즉시 IP를 차단한다. 

6. 지문 인식 및 행동 분석 

사용자 에이전트, 화면 크기, 마우스 움직임 등 브라우저 특성을 감지한다.

방문자가 스크롤이나 즉시 클릭 없는 형태의 봇처럼 행동하는 경우 이의를 제기하거나 차단한다. 

7. 빈번한 콘텐츠 업데이트 및 난독화 

HTML 구조를 자주 변경한다. 

CSS 난독화를 사용하여 텍스트를 숨기거나 ID/클래스를 동적으로 변경한다. 

 

봇, 크롤러, 스파이더

반응형

댓글