정의
데이터 스크래핑은 웹사이트나 프로그램 화면에 나타난 정보를 소프트웨어가 자동으로 읽어 필요한 데이터만 골라 뽑아내는 기술이에요. 사람이 인터넷 창을 열고 글자를 하나하나 복사해서 엑셀에 붙여넣는 작업을 로봇이 대신하는 셈이에요.
사람의 복사 작업을 몇 초 만에 끝내요
인터넷 쇼핑몰 100곳의 운동화 가격을 비교한다고 상상해 보세요. 사람이 직접 한다면 사이트를 하나씩 방문해 상품명과 가격을 보고 메모장에 적어야 해요. 하루 종일 걸리고 실수로 숫자를 잘못 적을 수도 있죠.
데이터 스크래핑은 이 지루한 작업을 프로그램이 번개 같은 속도로 대신 처리해요. 프로그램이 웹페이지를 화면 뒤의 코드 형태로 다운로드한 뒤, 가격이나 상품명이 적힌 위치를 찾아내요. 그리고 필요한 정보만 쏙쏙 골라내어 엑셀 파일이나 데이터베이스에 깔끔하게 정리해 줘요.
이 기술은 여러 쇼핑몰의 가격 변동을 지켜보거나, 매일 아침 뉴스 헤드라인을 자동으로 모아 보는 데 쓰여요. 다만 항공권 비교처럼 규모가 큰 서비스는 스크래핑보다 제휴를 맺고 API로 데이터를 받는 경우가 많아요. 사람의 손과 눈이 하던 '찾아서 옮겨 적기'를 자동화한 거예요.
웹 크롤링과는 어떻게 다를까요?
데이터를 모은다는 점에서 데이터 스크래핑과 웹 크롤링은 자주 함께 쓰여요. 하지만 둘은 일하는 목적과 방식에서 분명한 차이가 있어요.
웹 크롤링은 인터넷이라는 거대한 도서관을 돌아다니며 새로운 책과 서가를 찾아 지도를 그리는 작업이에요. 구글이나 네이버 같은 검색 엔진이 웹페이지 사이의 링크를 타고 끝없이 이동하며 웹 전체를 탐색할 때 쓰는 기술이죠.
반면에 데이터 스크래핑은 특정 책을 펼쳐서 그 안에 적힌 특정 문장이나 숫자만 핀셋으로 집어내는 작업이에요. 예를 들어 '모든 블로그를 찾아다니며 주소를 모으는 것'은 크롤링이고, '그 블로그 안에서 작성자와 댓글 수만 긁어모으는 것'이 바로 스크래핑이에요.
조금 더 정확히 말하면: 지켜야 할 규칙이 있어요
데이터 스크래핑은 매우 유용하지만 서버 주인과의 갈등을 낳기도 해요. 로봇 프로그램이 1초에 수천 번씩 웹사이트에 접속해 데이터를 긁어가면, 정작 일반 사용자가 접속할 서버가 마비될 수 있거든요.
그래서 웹사이트들은 '로봇 배제 표준(robots.txt)'이라는 문패를 걸어 '여기는 수집하지 말아 주세요'라고 요청해요. 다만 강제력은 없어서 지키지 않는 프로그램도 있어요. 그래서 캡차처럼 로봇인지 사람인지 묻는 퀴즈를 내어 로봇을 실제로 걸러내는 장치를 함께 쓰기도 해요.
공개된 데이터라도 저작권이나 개인정보가 포함되어 있다면 법적인 문제가 될 수 있어요. 그래서 오늘날 많은 기업은 화면을 몰래 긁어오는 스크래핑 대신, 공식적으로 데이터를 주고받는 정식 창구인 API를 사용하도록 권장하고 있어요.
흔한 오해
인터넷에 공개된 정보라면 누구나 스크래핑해서 상업적으로 자유롭게 써도 된다.
화면에 보인다고 해서 무단 수집이 허용되는 것은 아니에요. 사이트 이용약관, 저작권, 개인정보 보호법에 따라 법적 분쟁이 생길 수 있고, 상대 서버에 과도한 부하를 주면 업무방해 등으로 민·형사상 법적 책임이 문제 될 수 있어요. 구체적인 판단은 사안마다 달라요.
일상에서 만나요
여러 쇼핑몰의 상품 가격 변동을 자동으로 모아 지켜보는 가격 모니터링 프로그램
연구를 위해 공개 게시판의 글을 자동으로 모아 분석하는 작업
그러니까 한마디로
데이터 스크래핑은 웹 화면 속 필요한 데이터를 프로그램이 자동으로 쏙쏙 골라내어 표나 파일로 정리해 주는 수집 기술이에요.