웹 크롤링은 'URL을 탐색해 반복적으로 링크를 찾고 가져오는 과정' 입니다. '기어 다니다' 라는 뜻의 영어 단어 크롤링(crawling)을 사용한 것에서 알 수 있듯이, 웹 크롤링은 웹 페이지를 찾아다니며 정보를 수집합니다.
대표적인 웹 크롤링으로는 검색엔진의 웹 크롤러(web crawler)가 하는 일을 예로 들 수 있습니다. 웹 크롤러는 URL을 수집하고 웹 페이지를 복사하여, 수집한 웹 페이지에 색인(index)을 부여합니다. 사용자에게 더 신속하게 정보를 제공하기 위해서죠. 분류가 잘 되어있으면 그만큼 검색 속도가 올라갈 테니까요. 그럼 웹 스크래핑은 무엇일까요?
웹 스크래핑은 '우리가 정한 특정 웹 페이지에서 데이터를 추출하는 것' 입니다. 우리가 특정 주제의 뉴스만을 가져오거나, 인기 검색어 정보를 가져오는 것, 어떤 상품의 가격을 모니터링하는 것 모두 웹 스크래핑입니다. 우리가 원하는 특정 웹 사이트가 있고 그곳에서 우리가 필요한 정보만을 가져오는 것이니까요. 그래서 웹 스크래핑을 웹 데이터 추출(web data extraction), 웹 하베스팅(web harvesting)이라고도 부릅니다.
웹 크롤링과 웹 스크래핑은 모두 정보를 추출해온다는 데서는 공통점을 지닙니다. 하지만 '타켓 웹 페이지의 유무' 와 '중복 제거(deduplication)의 실행 여부' 에서 차이가 납니다.
웹 크롤링은 특정 웹 페이지를 목표로 하지 않습니다. 일단 탐색부터 하고, 정보를 가져오죠. '선탐색 후추출' 입니다. 반면 웹 스크래핑을 할 때는 목표로 하는 특정 웹페이지가 있습니다. 우리가 원하는 정보를 어디서 가져올지 타겟이 분명하고, 그 타겟에서 정보를 가져오죠. 그래서 '선결정 후추출' 입니다.
또, 웹 크롤링에서는 중복 제거가 필수적입니다. 중복되거나 불필요한 정보를 가져와서 분류를 더 어렵게 할 필요는 없으니까요. 도서관의 책이 개별적으로 구분되는 색인이 있는 것처럼 웹 크롤링도 수집한 웹 페이지가 중복되지 않도록 서로 다른 색인을 남깁니다. 그래서 웹 크롤링을 웹 인덱싱(web indexing) 이라고도 부릅니다.
반면 웹 스크래핑에서는 중복 제거가 필수는 아닙니다. 중복된 정보를 가지고 있을 필요는 없지만, 그렇다고 꼭 필수적으로 하는 일도 아니죠.
인터넷 상의 있는 불특정 웹 사이트를 방문해 어떤 링크에 어떤 정보가 담겨있는지 수집하고 색인하는 즉, 검색 사이트의 봇(구글 봇)이 하는 행위
정해진 특정 웹사이트에서 특정 데이터를 추출하고 가공하는 작업으로 필요한 정보 만을 스크랩하는 행위 참고로 파싱은 스크래핑의 상위 개념으로 생각