1. 크롤링이란?
01. 크롤링이란
💡 크롤링(Crawling)은 웹 페이지나 API로부터 원하는 정보를 자동으로 수집하는 기술로, 웹 스크래핑(Web Scraping)이라고도 불린다.
크롤러(Crawler) 또는 스파이더(Spider)라고 불리는 프로그램이 인터넷 상의 웹 사이트를 링크를 따라가며 웹 전체 또는 특정 사이트를 자동으로 탐색하며 데이터를 추출한다.
크롤링은 대량의 데이터를 효율적으로 수집하여 데이터 분석, 머신러닝 모델 학습, 시장 조사 등 다양한 분야에서 활용된다.
02. 크롤링과 스크래핑의 차이점
웹 크롤링 : 웹 전체를 자동 탐색하여 페이지를 수집 / 주로 검색 엔진에서 활용
웹 스크래핑 : 특정 웹 페이지에서 원하는 데이터를 추출 / 데이터 분석이나 시장 조사 등 특정 목적을 위해 사용
03. 크롤링의 필요성
- 데이터 수집 자동화: 수동으로 데이터를 수집하는 데 드는 시간과 노력을 절감할 수 있다.
- 실시간 정보 수집: 최신 데이터를 지속적으로 수집하여 시장 변화에 빠르게 대응할 수 있다.
- 대규모 데이터 분석: 머신러닝 모델 학습을 위한 빅데이터를 확보할 수 있다.
- 경쟁력 강화: 경쟁사 분석, 소비자 트렌드 파악 등을 통해 비즈니스 전략 수립할 수 있다.
04. 크롤링 시 주의사항
(1) 법적 고려사항
- 저작권이 있는 콘텐츠를 허가 없이 수집하여 사용하면 법적 문제가 발생할 수 있다.
- 대상 사이트의 이용 약관을 확인하고 허용된 범위 내에서 크롤링 해야 한다.
- 사이트에서 지정한 크롤링 허용/비허용 정책*(로봇 배제 표준(robots.txt))*에 따라야 한다.
(2) 서버 부하 방지
- 과도한 요청은 대상 서버에 부하를 주어 서비스 장애를 유발할 수 있다.
- 요청 간 딜레이 적용, 동시에 보내는 요청 수 제한 등으로 부하를 최소화해야 한다.
(3) 개인정보 보호 및 윤리적 고려
- 개인정보나 민감한 정보 수집 시 개인정보 보호법 등 관련 법규를 준수해야 한다.
- 수집한 데이터를 어떻게 활용할 것인지에 대한 윤리적 판단이 필요하다.
(4) IP 차단 위험
1. 무분별한 크롤링은 대상 서버에서 IP를 차단할 수 있으므로 주의해야 한다.
2. Open API
01. Open API 개요
(1) Open API 란
💡 공개적으로 사용할 수 있도록 제공되는 API(Application Programming Interface)로, 개발자가 표준화된 방법으로 특정 서비스나 데이터에 접근할 수 있게 한다.
(2) Open API 특징
- API 키(API Key), OAuth 등의 인증 방식을 사용한다.
- 사용량 제한, 호출 빈도 제한 등의 정책이 존재한다.
- API 사용 방법, 요청 및 응답 형식, 예제 코드 등 상세한 내용을 공식 문서로 제공한다.
(3) Open API 장점
- 표준화된 인터페이스로 빠르게 개발 가능하여 생산성이 향상된다.
- 필요한 데이터를 손쉽게 획득하여 서비스 개발에 활용할 수 있다.
- 데이터 제공자와 소비자 간의 협업과 혁신을 촉진한다.
02. Open API 사용법
(1) API 문서 이해
- API 엔드포인트(Endpoint) : API에 접근하기 위한 URL 주소
- HTTP 메서드(Method)
- GET: 데이터 조회
- POST: 데이터 생성
- PUT/PATCH: 데이터 수정
- DELETE: 데이터 삭제
- 요청 파라미터(Parameter) : 쿼리 스트링 또는 요청 본문에 포함되는 데이터
- 응답 형식 : JSON, XML 등으로 데이터 반환
- 인증 방법
- API Key: 요청 헤더나 파라미터에 포함
- OAuth: 토큰 발급 후 인증에 사용
(2) API 테스트 방법
- API 테스트 도구 사용 (Postman 등)
- GUI 환경에서 요청을 구성하고 응답을 확인한다.
- 요청 내역 저장 및 공유 가능하다.
- cURL 명령어 사용
- 터미널에서 HTTP 요청을 실행하여 테스트한다.
- 스크립트나 배치 파일에 활용 가능하다.
- 브라우저를 통한 간단한 테스트
- GET 요청의 경우 브라우저 주소창에 엔드포인트와 파라미터 입력하여 테스트 할 수 있다.
(3) 공공 데이터 포털 API 사용 방법
- 공공 데이터 포털 사이트에서 회원 가입 후 API 신청하여 키를 발급받는다.
- 제공되는 API 매뉴얼에서 요청 방법, 파라미터, 응답 형식 등을 확인한다.
- 문서에 명시된 대로 API를 호출하고 응답을 확인한다.
03. API 크롤러
[API 크롤러 만들기]
1. 개발 환경 설정
- 프로그래밍 언어를 선택한다. (python)
- 크롤링에 필요한 라이브러리를 설치한다. (requests, json 등)
- API key와 엔드 포인트를 설정한다. (이때, API key는 유출되면 안되는 정보이므로 환경 변수나 설정 파일에 담아 안전하게 보관해야 한다.)
2. API 요청 함수 작성
#1. 요청 파라미터 구성
params = {
"key": "{key}",
"targetDt": "20241120"
}
#2. HTTP 요청 보내기
import requests
url = "http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json"
# API 요청
response = requests.get(url, params=params)
# 결과 출력
if response.status_code == 200:
print(response.json())
else:
print(f"Error: {response.status_code}")
#3. 응답처리
if response.status_code == 200:
data = response.json() # JSON 응답 파싱
else:
print(f"Error Code: {response.status_code}")
3. 받아온 데이터를 저장 및 처리 (데이터 검증, 데이터 저장, 예외처리, 반복)
반복 및 자동화 : 자동화 스크립트 작성 스크립트를 실행하면 전체 데이터를 수집하도록 구성한다.
스케줄러(Cron, Windows Task Scheduler 등)로 주기적으로 실행하도록 설정 가능하다.
4. 최종 데이터 확인 및 활용 (데이터 정제, 분석 및 시각화, 저장)
# 데이터 정제 및 변환
import pandas as pd
df = pd.read_csv('movie_data.csv')
df.dropna(inplace=True) # 결측치 제거
df['개봉일자'] = pd.to_datetime(df['개봉일자'])
# 데이터 분석 및 시각화
matplotlib 등을 활용해 데이터를 시각화하여 분석한다.
# 데이터 저장
df.to_csv('final_data.csv', index=False)'SKN > 03. Web Crawling' 카테고리의 다른 글
| 06. 크롤링 도구 개요 (0) | 2025.02.25 |
|---|---|
| 05. CSS 선택자 (0) | 2025.02.25 |
| 04. 브라우저 렌더링 동작 구조 (0) | 2025.02.25 |
| 03. 크롤링 데이터 저장 (0) | 2025.02.25 |
| 02. WEB의 구조 및 크롤링 (0) | 2025.02.25 |