공공데이터 API로 데이터 수집
2025. 10. 2. 14:22ㆍ카테고리 없음
📝 네이버 & 공공데이터 API 활용하기
1. 왜 API를 활용할까? (목적)
데이터를 수집할 때 직접 크롤링을 하면 한계가 많다.
- 크롤링 대상 웹사이트가 변경되면 코드도 바꿔야 함
- 로봇 차단, 속도 제한 등 제약 존재
이때 API(Application Programming Interface)를 활용하면, 공식적으로 제공되는 데이터를 가져올 수 있다.
예를 들어, 네이버 검색 API를 활용하면 뉴스, 블로그, 책 정보 등을 원하는 조건으로 가져올 수 있고, 공공데이터 API를 활용하면 정부·기관이 공개한 교통, 날씨, 환경 데이터를 쉽게 받아올 수 있다.
2. API의 기본 동작 원리 (개념)
API를 활용하는 절차
URL 구성
- API 문서에서 제시하는 형식에 맞게 요청 URL을 만든다.
- 예: 검색어, 인증키, 옵션(페이지 수, 출력 건수 등)을 쿼리 파라미터로 붙임.
요청(Request)
- requests.get() 또는 requests.post() 같은 방식으로 요청을 보낸다.
응답(Response)
- 서버가 JSON 형식으로 데이터를 반환한다.
파싱(Parsing)
- JSON 데이터를 파이썬의 dict나 list로 변환해서 다룬다.
활용
- 필요한 값만 뽑아 리스트/DB에 저장하거나 시각화·분석에 활용한다.
3. 간단한 예시 코드 (Python)
import requests
import json
# 네이버 뉴스 검색 API URL
url = "https://openapi.naver.com/v1/search/news.json"
headers = {
"X-Naver-Client-Id": "YOUR_CLIENT_ID",
"X-Naver-Client-Secret": "YOUR_CLIENT_SECRET"
}
# 요청 보내기 (검색어: 데이터엔지니어)
response = requests.get(url, headers=headers, params={"query": "데이터엔지니어"})
# 응답을 JSON 형태로 변환
data = response.json()
# 기사 제목만 추출해서 리스트에 담기
titles = [item["title"] for item in data["items"]]
print(titles)
위 코드는 네이버 뉴스 검색 API를 활용하여 "데이터엔지니어"라는 키워드의 기사 제목만 뽑아오는 예시
Client ID와 Client Secret을 네이버 개발자 센터에서 발급받아야 합니다.
- 추가로 공부하면 좋은 것들
• REST API 기본 구조 (GET, POST, PUT, DELETE)
• JSON 데이터 구조 다루기 (dict, list, key/value 탐색)
• requests 라이브러리 활용 심화 (status code, 에러 처리, timeout 설정)
• 공공데이터 API 인증키 발급 및 사용 방법