Day005 - 데이터 수집(Data Acquisition)
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Day005 - 데이터 수집(Data Acquisition)
오늘은 데이터 분석의 첫 단계인 '데이터 수집(Data Acquisition)' 기법 전반을 학습했다. 네이버(Naver)와 공공데이터 포털(Data.go.kr)의 공개 API를 활용부터 브라우저 내장 개발자 도구 분석, 정적∙동적 웹 크롤링(Web Crawling)까지 데이터 수집의 대표적인 방법을 실습 했다.
![]() |
| Naver Developers |
1. 공개 API 활용
먼저 Open API(Application Programming Interface)를 활용해 안전하고 정형화된 데이터를 수집했다. API Key 관리를 위해 보안에 유의하며, python-dotenv 라이브러리로 .env 파일에 비밀 Key를 격리 했다.
- 네이버 API : requests 모듈(Module)로 블로그 검색 및 이미지 검색을 수행하고, 특수 문자를 제거하는 정규식 함수를 작성해 이미지 파이프라인을 구축 했다.
- 공공데이터 포털 API : 출입국 관광 통계 API를 활용해 국적/월별 방한 외래 관광객 수치 데이터를 JSON 형태로 수집 했다.
import os
import requests
from dotenv import load_dotenv
# 환경 변수로 API KEY 보안 관리
load_dotenv()
NAVER_CLIENT_ID = os.getenv("NAVER_CLIENT_ID")
NAVER_CLIENT_SECRET = os.getenv("NAVER_CLIENT_SECRET")2. 브라우저 내장 개발자 도구(F12)를 통한 내부 API 분석
공개된 API가 없는 경우, 브라우저의 Network 탭(F12)을 활용해 웹페이지 내부에서 주고 받는 API 요청을 역추적(Networking Sniffing)하는 기법을 익혔다. XHR/Fetch 요청을 분석하여 숨겨진 JSON 데이터 URL을 찾아 직접 요청을 보냄으로써 크롤링 보다 빠른 효율성을 경험 했다.
![]() |
| 브라우저 개발자 도구(F12) |
![]() |
| XHR/Fetch |
3. 정적 및 동적 웹 크롤링(Web Crawling, Scraping)
- 정적 크롤링 : BeautifulSoup 와 requests 를 사용해 HTML 구조를 파싱하고 CSS Selector로 원하는 데이터를 추출 했다.
- 동적 크롤링 : JavaScript로 실시간 데이터가 로딩되는 SPA나 무한 스크롤 페이지는 Selenium 및 Playwright 라이브러리를 활용해 자동화 브라우저 조작을 구현 했다.
![]() |
| BeautifulSoup & Selenium |
다양한 데이터 수집 방식을 학습하며, 무작정 크롤링을 시도하기보다는 우선 공개 API를 활용해 보고, 공개 API가 없을 경우, 내부 API를 분석하고 정적 크롤링, 동적 크롤링 순서로 효율적인 접근법을 택해야 하는 걸 익혔다. 크롤링 시, 서버에 부하를 주지 않도록 매너 있는 요청 간격을 유지하는 점도 잊지 말아야 겠다.
#DataAcquisition #DataCollection #Crawling #Scraping #DataSet #Naver #OpenAPI #API #Data #Sniffing #BeautifulSoup #requests #Selenium #Playwright #env #TIL
- 공유 링크 만들기
- X
- 이메일
- 기타 앱




댓글
댓글 쓰기