정의
크롤러(英: crawler)는 주로 컴퓨팅 분야에서 사용되는 용어로, 자동화된 프로그램이 인터넷 상의 웹 페이지를 순차적으로 방문하고, 해당 페이지의 텍스트, 링크, 메타데이터 등을 수집·저장하는 기능을 말한다. 이러한 프로그램은 검색 엔진이 웹 전체를 색인하기 위한 초기 단계에서 핵심적인 역할을 수행한다. 이와 유사하게, 물리적 이동 수단에 적용될 경우, 체인(트랙) 또는 무한히 회전하는 바퀴가 장착된 차량·기계를 가리키는 경우도 있다(예: 크롤러 트랙).
주요 활용 분야
| 분야 | 용도 |
|---|---|
| 검색 엔진 | 웹 페이지의 색인을 위해 대규모로 페이지를 수집 |
| 데이터 마이닝 | 특정 주제에 대한 정보 추출 및 분석 |
| 웹 아카이빙 | 웹 사이트의 역사적 스냅샷 보존 |
| 소프트웨어 테스트 | 자동화된 테스트 시나리오에서 웹 인터페이스 검증 |
동작 원리
- 시드 URL 지정 – 초기 대상 웹 페이지의 주소를 설정한다.
- 페이지 다운로드 – HTTP/HTTPS 요청을 통해 HTML 문서를 획득한다.
- 링크 추출 – 문서 내
<a>태그 등에서 하이퍼링크를 파악한다. - 큐에 추가 – 새로 발견된URL을 큐에 삽입하고, 중복 방지를 위해 이미 방문한 URL을 기록한다.
- 반복 – 큐가 비워질 때까지 2~4 과정을 반복한다.
제한 및 윤리적 고려
- robots.txt: 웹 사이트 관리자가 크롤링을 제한하거나 금지할 수 있는 표준 텍스트 파일.
- 요청 속도: 과도한 요청은 서버 부하를 일으켜 서비스 거부(DoS) 상황을 초래할 수 있다.
- 저작권: 수집된 콘텐츠의 재배포는 저작권법에 저촉될 수 있다.
어원
‘크롤러’는 영어 crawler에서 차용된 외래어이다. 영어 crawl은 “천천히 기어가다”라는 의미이며, 프로그램이 웹을 “천천히(또는 순차적으로) 기어가며” 데이터를 수집한다는 비유적 표현에서 유래한다.
관련 용어
- 스파이더(Spider): 크롤러와 동일한 의미로 사용되는 경우가 많다.
- 봇(Bot): 자동화된 작업을 수행하는 프로그램을 총칭하는 용어이며, 크롤러는 봇의 한 형태이다.
참고
- 검색 엔진 기술 문헌 및 웹 표준 문서(예: W3C, IETF RFC)에서 크롤러에 대한 정의와 동작 방식을 다루고 있다.
- “robots.txt” 표준은 1994년 처음 제정된 이후, 대부분의 크롤러가 이를 준수하도록 설계되어 있다.