웹 크롤러는 로봇 또는 스파이더라고도 부른다.

검색 엔진에서 널리 쓰는 기술로, 웹에 새로 올라오거나 갱신된 콘텐츠를 찾아내는 것이 주된 목적이다.

웹 크롤러는 몇 개 웹 페이지에서 시작하여 그 링크를 따라 나가면서 새로운 콘텐츠를 수집한다.

크롤러 이용 예시

  1. 검색 엔진 인덱싱(search engine indexing)
    1. 크롤러의 가장 보편적인 용례다. 웹 페이지를 모아 검색 엔진을 위한 로컬 인덱스를 만든다.
  2. 웹 아카이빙(web archiving)
    1. 나중에 사용할 목적으로 장기보관하기 위해 웹에서 정보를 모으는 절차를 말한다.
    2. 많은 국립 도서관이 크롤러를 돌려 웹 사이트를 아카이빙하고 있다.
  3. 웹 마이닝(web mining)
    1. 웹의 폭발적 성장세는 데엍 마이닝 업계에 전례없는 기회다.
    2. 웹 마이닝을 통해 인터넷에서 유용한 지식을 도출해 낼 수 있는 것이다.
  4. 웹 모니터링(web monitoring)
    1. 크롤러를 사용하면 인터넷에서 저작권이나 상표권이 침해되는 사례를 모니터링할 수 있다.
    2. 일례로 디지마크 사는 웹 크롤러를 사용해 해적판 저작물을 찾아내서 보고한다.

<aside> 💡 웹 크롤러의 복잡도는 웹 크롤러가 처리해야 하는 데이터의 규모에 따라 달라진다. 그러니 우리가 설계할 웹 크롤러가 감당해야 하는 데이터의 규모와 기능들을 먼저 알아내자.

</aside>

1. 문제 이해 및 설계 범위 확정

웹 크롤러의 기본 알고리즘

  1. URL 집합이 입력으로 주어지면, 해당 URL들이 가리키는 모든 웹 페이지를 다운로드한다.
  2. 다운받은 웹 페이지에서 URL들을 추출한다.
  3. 추출된 URL들을 다운로드할 목록에 추가하고, 위 과정을 처음부터 반복한다.