본문 바로가기
BigData

네이버의 검색 API 및 네이버 데이터랩 API 사용 방법에 대하여 알아보자

by Lcoding 2025. 2. 25.
반응형

 

 

안녕하세요.

오늘은 네이버의 검색 API 및 네이버 데이터랩 API를 사용하는 방법에 대하여 알아보겠습니다.

 

네이버 개발자 센터 - https://developers.naver.com/main/

 

NAVER Developers

네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음

developers.naver.com

 

네이버 개발자 센터 페이지에서 로그인하면 여러가지 API를 지원 받을 수 있습니다.

 

해당 사이트에서 애플리케이션 등록 → 내 애플리케이션 (등록한 해당 애플리케이션 선택) →

API설정 → 사용 API → 사용할 API를 등록합니다.

 

 

API 리스트

 

대부분 일정량까지는 무료이며, 초과시 과금이 되는 형태입니다.

 

오늘은 검색 API와 데이터랩 API 사용법에 대하여 알아보겠습니다.

 

.env파일내에 아래와 같이 발급받은 NAVER_CLIENT_ID , NAVER_CLIENT_SECRET키를 작성해줍니다.

# 네이버 검색 API 설정
NAVER_CLIENT_ID=your_naver_client_id
NAVER_CLIENT_SECRET=your_naver_client_secret

 

 

 

다음은 네이버 검색 API를 사용할 메서드를 작성해줍니다.

naverSearchApi.py

import aiohttp
import os

NAVER_CLIENT_ID = os.getenv("NAVER_CLIENT_ID")
NAVER_CLIENT_SECRET = os.getenv("NAVER_CLIENT_SECRET")


async def search_naver_api(keyword: str, display: int = 10):
    url = f"https://openapi.naver.com/v1/search/blog.json?query={keyword}&display={display}"
    headers = {
        "X-Naver-Client-Id": NAVER_CLIENT_ID,
        "X-Naver-Client-Secret": NAVER_CLIENT_SECRET
    }

    async with aiohttp.ClientSession() as session:
        async with session.get(url, headers=headers) as response:
            return await response.json()

 

 

메인 컨트롤러에서 해당 메서드를 호출해줍니다.

main.py

from fastapi import APIRouter
from ..services.naverSearchApi import search_naver_api


router = APIRouter()


@router.get("/search/naver")
async def naver_search(keyword: str):
    result = await search_naver_api(keyword)
    return result

 

 

 

 

 

다음은 네이버 데이터랩 API를 사용할 메서드를 작성해줍니다.

naverDataApi.py

from fastapi import APIRouter, HTTPException
import os
import requests


NAVER_CLIENT_ID = os.getenv("NAVER_CLIENT_ID")
NAVER_CLIENT_SECRET = os.getenv("NAVER_CLIENT_SECRET")

@router.post("/trend-api")
async def analyze_trend(keywords: list):
    """네이버 데이터랩 API를 통한 트렌드 분석"""
    try:
        url = "https://openapi.naver.com/v1/datalab/search"
        headers = {
            "X-Naver-Client-Id": NAVER_CLIENT_ID,
            "X-Naver-Client-Secret": NAVER_CLIENT_SECRET,
            "Content-Type": "application/json"
        }
        payload = {
            "startDate": "2024-01-01",
            "endDate": "2024-12-31",
            "timeUnit": "month",
            "keywordGroups": [{"groupName": kw, "keywords": [kw]} for kw in keywords]
        }

        response = requests.post(url, json=payload, headers=headers)
        response.raise_for_status()
        return response.json()

    except Exception as e:
        raise HTTPException(status_code=500, detail=f"트렌드 분석 중 오류: {str(e)}")

 

 

 

 

 

위와 같이 작성후 결과를 웹으로 json으로 받아보거나 디버그로 체크해보시면 정상적으로 리턴되는걸 볼 수 있습니다.

 

감사합니다. 

 

 

 

 

 

 

 

 

반응형

loading