인터넷상에는 비즈니스의 무기가 될 수 있는 방대한 가치의 정보들이 널려 있습니다. 쇼핑몰의 경쟁사 상품 가격 변화, 부동산 시세 변동, 트렌디한 뉴스 이슈 분석 등. 이 방대한 데이터를 매일 손가락이 아프게 복사하고 있다면 당장 '웹 스크래핑(Web Scraping)' 자동화 기술을 도입해야 합니다.
1. 웹 스크래핑 vs 웹 크롤링 차이점
- 웹 스크래핑 (Scraping): 특정 한 웹사이트의 특정 타겟 페이지 내에서 내가 원하는 데이터(예: 상품 가격, 게시물 제목)를 정확하게 도려내어 표 형태로 가져오는 기술입니다.
- 웹 크롤링 (Crawling): 구글의 검색 로봇처럼, 링크를 타고 타고 넘어가며 웹의 온갖 문서들을 인덱싱하고 주기적으로 뒤지는 광범위한 정보 수집 행위입니다.
2. 스크래핑할 때 반드시 알아야 할 HTML의 3대 뼈대
웹사이트는 결국 텍스트 파일로 이루어져 있습니다. 내가 원하는 조각을 찾으려면 구조를 볼 줄 알아야 합니다.
- 태그(Tag): <div>, <p>, <a>처럼 구역이나 링크를 설정하는 보이지 않는 괄호틀입니다.
- 클래스(Class): 스타일이나 속성이 비슷한 여러 요소에 붙여두는 별명입니다.
- ID: 한 페이지 내에서 단 하나만 존재하는 고유값입니다. 스크래핑할 때 ID를 저격하면 오차 없이 데이터를 한 번에 찾아올 수 있습니다.
3. 윤리적이고 합법적인 스크래핑을 위한 규칙
무작정 다량의 크롤러를 돌려 상대 웹서버에 과부하를 주면 법적 처벌을 받거나 IP를 차단당할 수 있습니다.
- robots.txt 파일 확인: 타겟 주소 뒤에 /robots.txt를 쳐보세요. 검색 봇과 크롤러들에게 "이 구역은 들어와서 긁어가지 마라"라고 규칙을 밝혀둔 지침서가 나옵니다. 이 규칙을 준수하는 것이 웹 생태계의 약속입니다.
- 딜레이 주기: 데이터 요청 사이에 최소 1~2초의 대기 시간(Delay)을 두어 서버에 무리를 주지 않도록 정중히 스크래핑해야 합니다.