웹 크롤링(Web crawling)과 웹 스크래핑(Web scraping)은 웹에서 데이터를 수집하기 위한 방법들입니다. 많은 회사들이 해당 기술을 사용하고 있으며, 국내에서는 토스가 유명합니다.
의미가 비슷해서 많은 곳에서 단어를 혼용해서 사용합니다. 특히, 웹 스크래핑으로 분류되어야 할 것들을 웹 크롤링으로 분류하는 경우가 빈번합니다.
웹 크롤링
- 웹에서 대규모의 데이터를 지속적으로 수집합니다.
- 정해진 목표가 없습니다.
- 진행 중에 발견되는 하위 페이지까지 모두 탐색합니다.
- 다른 분의 문장을 인용하자면, 웹 전체를 대상으로 DFS•BFS를 하는 것에 가깝습니다.
- 즉, 웹 크롤링은 링크를 따라 웹 전체를 완전 탐색하는 것이라고 할 수 있습니다.
웹 스크래핑
- 웹에서 원하는 데이터를 추출하는 작업을 말합니다.
- 크롤링은 그 특성으로 인해 필연적으로 대규모인 것에 반해 웹 스크래핑은 소규모, 일회성 작업도 포함합니다.
- 목적이 명확하게 정해져 있습니다.
- 의외로 상당수의 기업에서 정보 수집을 위해 사용하고 있습니다.
아래에 해당한다면 거의 스크래핑입니다
- 규모가 작은 경우
- 일회성인 경우
- 특정 사이트를 대상으로 하는 경우
- 특정 데이터를 목표로 하는 경우
- Beautiful Soup, Selenium 등을 활용하는 경우
주의할 점
robots.txt
파일에 명시된 규칙을 준수해야 합니다.- 서버에 부하를 주면 안 됩니다.
- 크롤링•스크래핑은 법적, 윤리적 문제를 일으킬 수 있습니다.
특히 상업적 목적으로 활용한다면 문제가 더 커질 수 있으며, 스크래핑을 금지한다고 명시해 놓거나 행위 자체를 차단하는 경우도 많습니다. - 일반적인 스크래핑은 홈페이지 구조에 매우 민감하기 때문에 지속 가능성과 거리가 있습니다.
비영리•학습 목적 또는 최후의 임시방편으로만 사용하는 것이 좋습니다.
참고 자료
아래 두 글이 웹 크롤링•스크래핑에 대해 가장 시원하게 설명한 글이라고 생각합니다.