공공데이터 API로 데이터 수집

2025. 10. 2. 14:22카테고리 없음

📝 네이버 & 공공데이터 API 활용하기

1. 왜 API를 활용할까? (목적)

데이터를 수집할 때 직접 크롤링을 하면 한계가 많다.

  • 크롤링 대상 웹사이트가 변경되면 코드도 바꿔야 함
  • 로봇 차단, 속도 제한 등 제약 존재

이때 API(Application Programming Interface)를 활용하면, 공식적으로 제공되는 데이터를 가져올 수 있다.


예를 들어, 네이버 검색 API를 활용하면 뉴스, 블로그, 책 정보 등을 원하는 조건으로 가져올 수 있고, 공공데이터 API를 활용하면 정부·기관이 공개한 교통, 날씨, 환경 데이터를 쉽게 받아올 수 있다.


2. API의 기본 동작 원리 (개념)

API를 활용하는 절차

  1. URL 구성

    • API 문서에서 제시하는 형식에 맞게 요청 URL을 만든다.
    • 예: 검색어, 인증키, 옵션(페이지 수, 출력 건수 등)을 쿼리 파라미터로 붙임.
  2. 요청(Request)

    • requests.get() 또는 requests.post() 같은 방식으로 요청을 보낸다.
  3. 응답(Response)

    • 서버가 JSON 형식으로 데이터를 반환한다.
  4. 파싱(Parsing)

    • JSON 데이터를 파이썬의 dict나 list로 변환해서 다룬다.
  5. 활용

    • 필요한 값만 뽑아 리스트/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을 네이버 개발자 센터에서 발급받아야 합니다.


  1. 추가로 공부하면 좋은 것들
    • REST API 기본 구조 (GET, POST, PUT, DELETE)
    • JSON 데이터 구조 다루기 (dict, list, key/value 탐색)
    • requests 라이브러리 활용 심화 (status code, 에러 처리, timeout 설정)
    • 공공데이터 API 인증키 발급 및 사용 방법