1. 개요
크롤링(crawling)은 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위다. 크롤링하는 소프트웨어는 크롤러(crawler)라고 부른다.스크래핑과 헷갈릴 수 있는데, 크롤링은 동적으로 웹페이지를 돌아다니면서 수집하는 것을 말한다. 물론 실생활에서는 구분 없이 쓰는 경우가 많다.
검색 엔진에서도 유사한 것을 필수적으로 사용하는데, 웹 상의 다양한 정보를 자동으로 검색하고 색인하기 위해 사용한다. 이때는 스파이더(spider), 봇(bot), 지능 에이전트라고도 한다. 사람들이 일일이 해당 사이트의 정보를 검색하는 것이 아니라 컴퓨터 프로그램의 미리 입력된 방식에 따라 끊임없이 새로운 웹 페이지를 찾아 종합하고, 찾은 결과를 이용해 또 새로운 정보를 찾아 색인을 추가하는 작업을 반복 수행한다. 방대한 자료를 검색하는 특징은 있으나 로봇의 검색 기능을 역이용하여 순위를 조작하거나 검색을 피할 수 있는 단점도 있다. 네이버, 구글 등도 이런 봇을 이용해 운영된다.
2. 관련 소프트웨어
이 분야에서 가장 유명하다고 해도 될 Beautiful Soup은 엄연히 따지면 크롤링이 아닌 스크래핑 프로그램이다.그 외에도 Selenium이라는 라이브러리가 인기를 끌고 있다. WebDriver[1]와 headless 옵션을[2] 함께 이용해서 크롤링을 자동화할 수 있다. 그리고 beautifulsoup과 달리 브라우저를 띄우는 방식이기에 beautifulsoup에서 불가능한 작업인 클릭 등 상호작용이 가능하다.
Java에도 jsoup이라는 HTML 파싱 라이브러리가 존재한다. 파이썬의 beautifulsoup처럼 특정 조건을 가진 태그들을 선택하는 것이 가능하며, GET/POST 요청을 보내서 응답을 받아오는 것도 가능하다.
전문적인 크롤링 소프트웨어는 아니지만, 일반인들이 사용할 만한 툴로는 httrack과 wget-curl 정도가 있다. 인터넷이 느렸던 2000년대 초반에는 WebZip이라는 것이 인기를 모으기도 하였다.
3. SaaS(Software as a Service)
- 소프트웨어가 아닌 웹서비스 형태로 운영되는 크롤링 SaaS 서비스도 있다.
- 국내에는 해시스크래퍼와
크롤링즈[3]가 대표적이며, 해외에는 Scrapinghub가 있다.
4. 합법
자세한 내용은 미러링 문서 참고하십시오.5. 관련 문서
[1] 코드로 작동되게 할 수 있는 브러우저 창을 띄운다. 물론 브라우저 창이기에 그냥 클릭도 가능하다.[2] webdriver로 창을 띄우지 않고 백그라운드에서 브라우저가 작동되게 한다.[3] 현재 폐쇄된 것으로 보인다.