데이터 전처리: 데이터 소스 – 웹 크롤링
ㅁ 데이터 소스
ㅇ 정의:
데이터 소스는 분석이나 모델 학습을 위해 데이터를 가져오는 원천을 의미하며, 내부 시스템 데이터, 외부 공개 데이터, API, 웹 페이지 등 다양한 형태가 존재함.
ㅇ 특징:
– 정형, 반정형, 비정형 데이터를 모두 포함할 수 있음
– 데이터 품질과 최신성이 분석 결과에 큰 영향을 미침
– 접근 권한과 라이선스 조건을 반드시 확인해야 함
ㅇ 적합한 경우:
– 분석 목적에 맞는 데이터를 확보해야 할 때
– 외부 데이터와 내부 데이터를 결합하여 인사이트를 도출할 때
ㅇ 시험 함정:
– 데이터 소스와 데이터 형식을 혼동하는 경우
– 수집 방법과 데이터 소스를 동일시하는 경우
ㅇ 시험 대비 “패턴 보기” 예시:
O: “데이터 소스는 데이터의 원천을 의미한다.”
X: “데이터 소스는 데이터를 수집하는 절차를 의미한다.”
================================
1. 웹 크롤링
ㅇ 정의:
웹 크롤링(Web Crawling)은 자동화된 프로그램(크롤러, 스파이더)을 사용하여 웹 페이지의 HTML, 텍스트, 이미지 등 콘텐츠를 체계적으로 수집하는 기술.
ㅇ 특징:
– 대규모 웹 페이지를 자동으로 탐색 및 데이터 추출 가능
– HTML 구조 분석과 파싱이 필요함
– robots.txt 규칙 및 저작권, 이용 약관 준수 필요
– 실시간 데이터 수집보다는 주기적 수집에 적합
ㅇ 적합한 경우:
– 공개된 웹 정보(뉴스, 상품 정보, 공공 데이터 등)를 대량 수집할 때
– API가 제공되지 않거나 데이터 다운로드 기능이 없는 경우
ㅇ 시험 함정:
– 웹 크롤링과 웹 스크래핑을 혼동하는 경우 (크롤링은 탐색+수집, 스크래핑은 특정 페이지에서 데이터 추출)
– 모든 웹 크롤링이 합법이라고 오해하는 경우
ㅇ 시험 대비 “패턴 보기” 예시:
O: “웹 크롤링은 자동화 도구로 여러 웹 페이지를 순차적으로 방문하여 데이터를 수집한다.”
X: “웹 크롤링은 사용자가 직접 웹 페이지를 방문하여 데이터를 복사하는 행위이다.”
ㅁ 추가 학습 내용
웹 크롤링과 웹 스크래핑의 차이점과 활용 사례
웹 크롤링은 웹 페이지를 자동으로 탐색하며 링크를 따라가며 데이터를 수집하는 과정이고, 웹 스크래핑은 특정 웹 페이지에서 원하는 데이터를 추출하는 과정이다.
웹 크롤링은 검색 엔진의 인덱싱, 대규모 데이터 수집 등에 활용되며, 웹 스크래핑은 가격 비교, 뉴스 기사 수집, 데이터 분석 등에 사용된다.
robots.txt 파일의 역할과 규칙 해석
robots.txt는 웹사이트가 크롤러에게 접근 허용 여부를 알리는 규약 파일이다.
Disallow는 특정 경로나 파일에 대한 접근을 금지한다.
Allow는 특정 경로나 파일에 대한 접근을 허용한다.
크롤러는 이를 참고하여 접근 범위를 결정해야 한다.
서버 부하를 줄이기 위한 요청 간격과 User-Agent 설정
크롤링 시 짧은 시간에 많은 요청을 보내면 서버에 부하를 줄 수 있으므로 요청 간격(Throttle)을 두어야 한다.
User-Agent는 크롤러의 신원을 나타내는 헤더로, 사이트 운영자가 요청 주체를 식별할 수 있도록 설정한다.
주요 크롤링 라이브러리의 특징과 장단점
BeautifulSoup: HTML 파싱에 특화, 사용이 간단하지만 속도가 느릴 수 있음.
Scrapy: 대규모 크롤링 프레임워크, 속도와 확장성이 뛰어나지만 초기 학습이 필요함.
Selenium: 브라우저 자동화를 통해 동적 페이지 처리 가능, 속도가 느리고 리소스 소모가 큼.
크롤링 데이터의 저장 형식과 후처리
데이터는 JSON, CSV, 데이터베이스(DB) 등 다양한 형식으로 저장할 수 있다.
저장 후에는 중복 제거, 정규화, 형식 변환 등 후처리 과정을 거쳐 분석에 적합하게 만든다.
크롤링 시 발생할 수 있는 HTTP 상태 코드와 대응 방법
200: 요청 성공, 정상 처리.
403: 접근 금지, User-Agent 변경 또는 접근 권한 확인 필요.
404: 페이지 없음, URL 확인 필요.
429: 요청 과다, 요청 속도 조절 또는 IP 변경 필요.
법적 이슈와 개인정보 보호 규정
크롤링 시 저작권, 서비스 약관 위반 여부를 확인해야 한다.
개인정보 수집 시 GDPR 및 국내 개인정보보호법 등 관련 규정을 준수해야 하며, 동의 없이 개인정보를 수집·활용해서는 안 된다.