네이버는 다양한 서비스와 함께 개발자를 위한 다양한 API를 제공합니다. 네이버 API를 활용하면 검색, 지도, 번역 등 네이버의 강력한 기능을 여러분의 애플리케이션에 통합할 수 있습니다.(출처-네이버)
네이버 개발자 센터(https://developers.naver.com)에 접속해서 진행
애플리케이션 등록이 완료되면 Client ID와 Client Secret이 발급된다.
네이버는 다양한 API를 제공한다.
각 API의 문서를 통해 사용 방법, 요청 및 응답 형식, 예제 코드 등을 확인
X-Naver-Client-Id
와 X-Naver-Client-Secret
를 사용import os
import sys
import urllib.request
encText = urllib.parse.quote("인공지능")
url = "https://openapi.naver.com/v1/search/blog?query=" + encText # JSON 결과
# url = "https://openapi.naver.com/v1/search/blog.xml?query=" + encText # XML 결과
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request)
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
# requests 라이브러리 임포트
import requests
from urllib.parse import quote
# 검색어 설정
search_query = "인공지능"
# API 기본 URL
base_url = "https://openapi.naver.com/v1/search/blog"
# API 요청 헤더 설정
headers = {
"X-Naver-Client-Id": client_id,
"X-Naver-Client-Secret": client_secret
}
# API 요청 파라미터 설정
params = {
"query": search_query, # 검색어
"display": 10, # 검색 결과 출력 건수 (기본값: 10, 최대: 100)
"start": 1, # 검색 시작 위치 (기본값: 1, 최대: 1000)
"sort": "sim" # 정렬 방식 - sim: 정확도순, date: 날짜순
}
# GET 요청 보내기 (params 딕셔너리 사용)
response = requests.get( # 한글 자동으로 UTF-8인코딩 함
base_url,
headers=headers,
params=params
)
# 응답 상태 코드 확인 및 결과 출력
if response.status_code == 200:
# JSON 형식으로 응답 데이터 파싱
result = response.json()
print(result)
# 전체 검색 결과 수 출력
print(f"총 검색 결과: {result['total']} 건")
print(f"현재 페이지: {params['start']} / {result['total']}")
print("-" * 50)
# 검색 결과 출력
for item in result.get('items', []):
print(f"제목: {item['title']}")
print(f"블로거: {item['bloggername']}")
print(f"작성일: {item['postdate']}")
print(f"링크: {item['link']}")
print(f"설명: {item['description']}")
print("-" * 50)
else:
# 에러 발생시 상태 코드와 에러 메시지 출력
print(f"Error Code: {response.status_code}")
print(f"Error Message: {response.text}")
Client ID
와 Client Secret
를 헤더에 포함(출처 - 네이버)
각 API마다 일일 호출 한도가 있습니다. 초과 시 서비스가 제한될 수 있으므로 문서를 통해 확인하고 필요한 경우 별도의 협의를 진행합니다.
API 호출 시 발생할 수 있는 에러 코드와 메시지를 확인하고, 이에 대한 예외 처리를 구현합니다.
Client Secret
등 민감한 정보는 절대 소스 코드나 공개 저장소에 노출되지 않도록 주의합니다.
다양한 API 문서들을 확인하고 사용하기 전에 특강으로 여러 사이트의 API를 활용하는 법과 공식문서 참고내용들을 학습했다. 많은 양에 일단 네이버 API 활용하는 법과 예제를 간단히 올렸다