웹 크롤러
웹 크롤러(web crawler)는 웹의 문서와 자원을 자동으로 방문하여 링크를 추적하거나 콘텐츠와 메타데이터를 수집하는 프로그램이다. 스파이더(spider) 또는 봇(bot)이라고도 하며 검색 엔진의 색인 구축, 사이트 구조 분석, 링크 검사, 웹 아카이빙 등에 활용된다. 크롤러는 검...
| 분류 | 자동 문서 수집 프로그램 |
|---|---|
| 역할 | 웹 페이지의 발견과 수집 |
| 관련 기술 | World Wide Web, HTTP, HTML, URL |
| 참고 명세 | RFC 9309: Robots Exclusion Protocol |
웹 크롤러(web crawler)는 웹의 문서와 자원을 자동으로 방문하여 링크를 추적하거나 콘텐츠와 메타데이터를 수집하는 프로그램이다. 스파이더(spider) 또는 봇(bot)이라고도 하며 검색 엔진의 색인 구축, 사이트 구조 분석, 링크 검사, 웹 아카이빙 등에 활용된다. 크롤러는 검색 결과의 순위를 결정하는 시스템과 별개의 구성 요소지만 검색 엔진 내부에서 긴밀하게 연동한다.
크롤링은 수집을 시작할 시드 URL 집합을 준비하고 각 URL의 문서를 내려받는 과정에서 시작한다. HTML에서 다른 URL을 추출해 방문 대기열에 추가하고, 이미 방문한 주소나 내용상 중복된 자원을 걸러 수집 범위를 넓혀 간다. 같은 사이트에 과도한 요청을 보내지 않도록 호스트별 요청 간격과 동시 연결 수를 제한하는 스케줄러가 필요하다.
서버는 robots.txt 파일을 통해 자동화 클라이언트가 접근할 수 있는 경로에 관한 기본 지침을 게시할 수 있다. Robots Exclusion Protocol은 접근 권한을 인증하거나 보안 경계를 강제하는 수단이 아니라 크롤러의 자발적인 준수를 전제로 한다. 문서의 noindex 같은 색인 관련 지시와 robots.txt의 경로 제한은 목적이 달라 별도로 해석해야 한다.
웹 페이지가 JavaScript 실행 후에 주요 콘텐츠를 생성하면 HTTP 응답의 HTML만 내려받는 방식으로는 완전한 문서 상태를 얻지 못할 수 있다. 렌더링 기능을 사용하는 크롤러는 스크립트와 네트워크 요청을 실행해 결과를 수집하지만 계산 자원과 시간이 더 필요하다. 사이트맵과 캐시 유효성 정보, 조건부 요청은 변경된 콘텐츠를 효율적으로 확인하는 데 활용된다.
자동 수집에는 이용 약관과 저작권, 개인정보, 접근 제어 등 기술 외의 정책도 관여한다. 크롤러가 User-Agent를 명시하고 서버 오류에 따라 속도를 조정하면 운영 시스템에 미치는 부담을 줄일 수 있다. 악성 URL과 무한 경로 생성, 중복 콘텐츠 및 리디렉션 고리는 탐색 공간을 폭발적으로 늘리므로 방문 범위와 비용을 관리해야 한다.[1]