데이터 전처리: 데이터 수집 기법 – 웹 스크래핑 도구(BeautifulSoup
ㅁ 데이터 수집 기법
ㅇ 정의:
– 데이터 수집 기법은 분석 목적에 맞는 데이터를 다양한 출처에서 확보하는 방법을 의미하며, 웹, API, 센서, 로그 등 여러 경로를 통해 수집할 수 있다.
ㅇ 특징:
– 데이터의 품질과 형식이 출처에 따라 다르며, 수집 방식에 따라 전처리 난이도가 달라진다.
– 자동화 도구를 활용하면 대량의 데이터를 빠르게 확보 가능하다.
ㅇ 적합한 경우:
– 분석 주제에 필요한 데이터가 공개 웹페이지나 특정 플랫폼에 존재할 때
ㅇ 시험 함정:
– 데이터 수집과 데이터 크롤링, 스크래핑의 개념을 혼동하는 경우가 많다.
– 저작권 및 이용 약관 준수 여부를 간과하는 경우가 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “데이터 수집 기법에는 웹 스크래핑, API 호출, 센서 데이터 수집 등이 있다.”
– X: “데이터 수집은 반드시 수동으로만 수행해야 한다.”
================================
1. 웹 스크래핑 도구(BeautifulSoup)
ㅇ 정의:
– 웹 페이지의 HTML, XML 문서에서 원하는 데이터를 추출하는 기법이며, BeautifulSoup은 Python 기반의 대표적인 웹 스크래핑 라이브러리이다.
ㅇ 특징:
– HTML 파싱 기능이 강력하며, 태그, 속성, 텍스트 기반으로 원하는 요소를 쉽게 찾을 수 있다.
– requests, urllib 등과 함께 사용하여 웹 페이지 요청 후 파싱 가능.
– 비교적 학습 곡선이 완만하고, 빠른 프로토타이핑이 가능하다.
ㅇ 적합한 경우:
– 정적 HTML 페이지에서 구조화된 데이터를 추출해야 할 때
– 간단한 데이터 수집 작업이나 프로토타입 개발 시
ㅇ 시험 함정:
– BeautifulSoup 자체는 웹 페이지 요청 기능이 없으며, HTTP 요청은 별도 라이브러리 필요.
– 동적 로딩(JavaScript 기반) 페이지는 Selenium 등 다른 도구와 병행 필요.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “BeautifulSoup은 HTML 파싱에 특화된 Python 라이브러리이다.”
– X: “BeautifulSoup은 웹 페이지 요청과 파싱을 모두 수행한다.”
ㅁ 추가 학습 내용
웹 스크래핑과 웹 크롤링의 차이점
크롤링은 여러 페이지를 자동으로 탐색하며 데이터를 수집하는 과정이고, 스크래핑은 특정 페이지에서 원하는 데이터를 추출하는 데 초점을 둔다.
Robots.txt와 크롤링 정책 준수 방법
Robots.txt 파일은 검색엔진이나 봇이 접근할 수 있는 페이지와 차단해야 하는 페이지를 지정하는 규칙을 담고 있다. 이를 확인하고 해당 사이트의 접근 허용 범위를 준수해야 한다.
BeautifulSoup 주요 메서드와 CSS Selector 활용법
find: 조건에 맞는 첫 번째 요소를 찾는다.
find_all: 조건에 맞는 모든 요소를 리스트로 반환한다.
select: CSS Selector를 사용해 요소를 찾는다.
get_text: HTML 태그를 제거하고 텍스트만 추출한다.
CSS Selector를 활용하면 클래스, 아이디, 계층 구조 등을 기반으로 요소를 선택할 수 있다.
동적 페이지 처리 방법
Selenium, Playwright, Puppeteer 등을 사용하면 자바스크립트로 동적으로 생성되는 페이지의 데이터를 수집할 수 있다.
데이터 수집 시 법적·윤리적 고려사항
저작권법, 개인정보보호법, 사이트 이용약관을 반드시 확인하고 준수해야 한다. 무단 수집이나 상업적 이용 시 법적 문제가 발생할 수 있다.
대규모 데이터 수집 시 속도 최적화와 서버 부하 방지 기법
요청 간 일정한 시간 지연을 두어 서버 부하를 줄인다.
User-Agent를 설정해 요청의 출처를 명확히 한다.
필요한 데이터만 요청하여 불필요한 트래픽을 최소화한다.