1. 크롤링
1-1. 크롤링의 개요
1-1-1. 크롤링이란
💡크롤링(Crawling)은 웹 페이지나 API로부터 원하는 정보를 자동으로 수집하는 기술로, 웹 스크래핑(Web Scraping)이라고도 불린다.
크롤러(Crawler) 또는 스파이더(Spider)라고 불리는 프로그램이 인터넷 상의 웹 사이트를 링크를 따라가며 웹 전체 또는 특정 사이트를 자동으로 탐색하며 데이터를 추출한다.
크롤링은 대량의 데이터를 효율적으로 수집하여 데이터 분석, 머신러닝 모델 학습, 시장 조사 등 다양한 분야에서 활용된다.
1-1-2. 크롤링과 스크래핑의 차이점
- 웹 크롤링은 웹 전체를 자동으로 탐색하여 페이지를 수집하는 데 중점을 두며, 주로 검색 엔진에서 활용된다.
- 웹 스크래핑은 특정 웹 페이지에서 원하는 데이터를 추출하는 데 초점을 맞추며, 데이터 분석이나 시장 조사 등 특정 목적을 위해 사용된다.
구분 웹 크롤링 웹 스크래핑
정의 | 자동화된 프로그램이 웹 페이지를 탐색하며 링크를 따라 웹 전체를 수집하는 과정 | 특정 웹 페이지에서 원하는 데이터를 추출하는 과정 |
목적 | 웹 전체 또는 대규모 사이트의 페이지 수집 및 인덱싱 | 특정 웹 페이지에서 필요한 데이터 수집 |
동작 방식 | 링크를 따라가며 웹 페이지를 자동으로 탐색 | 대상 페이지의 HTML 구조를 분석하여 원하는 데이터 추출 |
범위 | 광범위 (다수의 웹 사이트 또는 웹 전체) | 한정적 (특정 웹 사이트나 페이지) |
사용자 개입 정도 | 낮음 (자동화된 탐색) | 높음 (대상 페이지의 구조 파악 및 데이터 선택 필요) |
데이터 처리 | 전체 콘텐츠 수집 후 인덱싱 또는 저장 | 필요한 데이터만 선별적으로 추출하여 저장 |
출력 결과 | 웹 페이지 전체의 콘텐츠 (HTML, 이미지 등) | 추출된 데이터 (텍스트, 숫자, 이미지 링크 등) |
대표적인 활용 사례 | 검색 엔진의 인덱스 생성, 웹 아카이빙 | 가격 비교 사이트의 가격 정보 수집, 데이터 분석을 위한 자료 수집 |
기술적 구현 | 크롤러 설계, URL 관리, 크롤링 정책 적용 | HTML 파싱, 데이터 선택자 지정, 동적 콘텐츠 처리 |
윤리적·법적 고려 | robots.txt 준수, 서버 부하 관리 | |
(robots.txt : 스크래핑 허용 여부, 허용 범위를 확인할 수 있는 파일로 사이트의 루트 페이지 url에 /robots.txt를 입력하여 다운로드 가능) | 저작권 및 이용 약관 준수, 데이터 사용 목적에 따른 법적 제약 |
1-1-3. 크롤링의 필요성
- 데이터 수집 자동화: 수동으로 데이터를 수집하는 데 드는 시간과 노력을 절감할 수 있다.
- 실시간 정보 수집: 최신 데이터를 지속적으로 수집하여 시장 변화에 빠르게 대응할 수 있다.
- 대규모 데이터 분석: 머신러닝 모델 학습을 위한 빅데이터를 확보할 수 있다.
- 경쟁력 강화: 경쟁사 분석, 소비자 트렌드 파악 등을 통해 비즈니스 전략 수립할 수 있다.
1-2. 크롤링 시 주의 사항
1-2-1. 법적 고려사항
- 저작권이 있는 콘텐츠를 허가 없이 수집하여 사용하면 법적 문제가 발생할 수 있다.
- 대상 사이트의 이용 약관을 확인하고 허용된 범위 내에서 크롤링 해야 한다.
- 사이트에서 지정한 크롤링 허용/비허용 정책*(로봇 배제 표준(robots.txt))*에 따라야 한다.
1-2-2. 서버 부하 방지
- 과도한 요청은 대상 서버에 부하를 주어 서비스 장애를 유발할 수 있다.
- 요청 간 딜레이 적용, 동시에 보내는 요청 수 제한 등으로 부하를 최소화해야 한다.
1-2-3. 개인정보 보호 및 윤리적 고려
- 개인정보나 민감한 정보 수집 시 개인정보 보호법 등 관련 법규를 준수해야 한다.
- 수집한 데이터를 어떻게 활용할 것인지에 대한 윤리적 판단이 필요하다.
1-2-4. IP 차단 위험
- 무분별한 크롤링은 대상 서버에서 IP를 차단할 수 있으므로 주의해야 한다.
'Web Crawling > Web Crawling ?' 카테고리의 다른 글
CSS 선택자 (0) | 2025.02.23 |
---|---|
브라우저 렌더링 동작 구조 (0) | 2025.02.23 |
크롤링 데이터 저장 (0) | 2025.02.23 |
WEB의 구조 (0) | 2025.02.23 |
OPEN API 란 ? (0) | 2025.02.23 |