컴퓨터 프로그램이 웹 페이지나 프로그램 화면에서 데이터를 자동으로 추출하는 것.
일반적으로
컴퓨터 프로그램 간의
데이터 교환은 상호 합의된 프로토콜이나
데이터 구조를 통해서 수행된다. 이에 비해 스크래핑은
웹 사이트 페이지나 프로그램 화면과 같이 주로 사람이 읽도록 만들어진 콘텐츠에서 다른 프로그램이 자동으로 데이터를 추출하는 방법이다.
추출하는 데이터의 종류와 범위는 한계가 없다. 쇼핑 사이트의 경우 가격 정보, 리뷰, 고객 연락처, 상품 이미지, 상품 동영상 등의 다양한 정보를 수집할 수 있다.
스크래핑은 데이터 스크래핑이라고도 하며, 스크린 스크래핑과 웹 스크래핑으로 구분된다. 스크린 스크래핑은 다른 프로그램의 화면 출력을 영상처리 기법 등으로 읽어내서 데이터를 추출하는 것이고, 웹 스크래핑은 웹 페이지에서 데이터를 추출하는 것을 말한다. 웹이 활성화된 1990년대 이후 대부분의 정보들이 웹에 게시되면서 웹 스크래핑을 스크래핑과 동의어로 사용하기도 한다.
웹 스크래핑에서는
컴퓨터 프로그램이
웹 브라우저 역할을 대신하여 대상
웹 사이트에 접속하여 페이지 내용을 가져온 후에 개발자가 사전에 지정한 데이터를 추출한다. 웹 스크래핑에는
웹 사이트의 동의 하에 검색 엔진이 자동으로 여러
웹 사이트를 브라우징(browsing)하는 크롤러를 이용하여 정보를 수집하는
크롤링
(crawling)이 포함된다.
크롤링의 경우에는 웹 페이지 소유자가 스크래핑이 가능한 콘텐츠를 robots.txt 파일에 지정하면, 허락된 콘텐츠만을 가지고 온다.
반면 웹 스크래핑은 robots.txt 파일에 지정된 파일 외에 무단으로
웹 사이트의 데이터를 추출할 수 있다. 그러나 이렇게 오용되는 경우에는 대상
웹 사이트의 저작권을 침해할 소지가 있고 추출한 데이터를 이용한 부당한 수익 창출 등에 사용될 수 있어 법적인 문제를 일으킬 수 있다. 또한 허가되지 않은 범위의 웹 스크래핑은 대상
웹 사이트에 과부하가 걸릴 수 있다. 이를 차단하기 위한
보안기술로 실행 횟수 및 데이터 제한, 행동 패턴 탐지 등이 있다.
* 참고: scraping의 외래어 표기법은 스크레이핑이다.