[NAVER Developers API] 지역 검색 API 활용하기 with Python

2024. 3. 9. 20:39·STUDY

네이버 개발자센터 API를 활용해 

네이버 검색 시 플레이스에 나오는 5개의 장소를 출력해보는 코드를 작성해보았다.

 

 

1. 내 애플리케이션 등록

 

 

NAVER Developers

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

developers.naver.com

네이버 API를 사용하기 위해서는 우선 위 사이트에서 내 애플리케이션 등록을 해줘야 한다.

여러 네이버 API가 있는데 여기서는 검색을 선택해 주어야 한다.

다른 카테고리를 선택하고 아래의 코드를 실행하면 401 오류 뜸 아마도

 

애플리케이션을 등록하고 난 후 내 애플리케이션 > 애플리케이션 정보에서 Client ID, Client Secret을 확인할 수 있다.

 

2. 검색 > 지역 Document 확인

 

검색 > 지역 - Search API

검색 > 지역 지역 검색 개요 개요 검색 API와 지역 검색 개요 검색 API는 네이버 검색 결과를 뉴스, 백과사전, 블로그, 쇼핑, 웹 문서, 전문정보, 지식iN, 책, 카페글 등 분야별로 볼 수 있는 API입니다

developers.naver.com

Documents를 훑어보면서 어떤 파라미터를 전달할지, 어떤 데이터들을 받을 수 있는지 등에 대해 쭉 확인해보면 된다.

 

반환 방식에 따라 두 가지 URL이 있었는데 데이터프레임으로 변환하기 쉽게 JSON 형식으로 받을 수 있는 걸 썼다.

 

 

보낼 수 있는 파라미터는 4가지가 있었고 이 중 display, sort 정도만 활용해 보았다. 

query는 당근 필요함

응답에 성공하면 위와 같은 결괏값이 나온다고 설명되어 있다.

# 0. import 
import warnings 
warnings.filterwarnings('ignore')
import pandas as pd
import requests, json

# 1. App_Key 얻기 (각자 키를 넣으면 됨)
CLIENT_ID = 'Client ID'
CLIENT_SECRET = 'Client Secret'

# 2. document url 
location = input()
url = f"https://openapi.naver.com/v1/search/local.json?query={location}" 

params = {
    'display': 5,
    # 'sort':'comment'
}

headers = {
    'X-Naver-Client-Id' : CLIENT_ID,
    'X-Naver-Client-Secret' : CLIENT_SECRET,
}

# 3. request(url: params, headers) > response : json(str)
response = requests.get(url, params, headers = headers)

여기까지 실행했을 때 response가 200이 뜬다면.. 성공

 

3. 검색 키워드에 따른 결과 확인

response.json()

받은 데이터를 확인해 보면 아래와 같은 결과가 나온다.

여기서 내가 얻고 싶은 정보는 'items' : 이후 부분이기 때문에 별도로 저장해주고, 필요한 칼럼만 추출해 데이터프레임 형식으로 변환해 준다. 

추가로 장소의 title에 <b> </b> 태그가 있어서 replace로 없애줬다..

# 4. json(str) > list, dict : DataFrame
data = response.json()['items']
columns = ['title', 'link', 'category','roadAddress']
df = pd.DataFrame(data)[columns]
df['title'] = df['title'].str.replace('<b>','').str.replace('</b>','')
df

궁금해서 서울시 카페를 쳐봤는데..

투떰즈업 이정도라니 ㅎㄷㄷ

 

+ 네이버에서 제공하는 예시 코드

# 네이버 검색 API 예제 - 블로그 검색
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
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)

 

 

검색 > 블로그 - Search API

검색 > 블로그 블로그 검색 개요 개요 검색 API와 블로그 검색 개요 검색 API는 네이버 검색 결과를 뉴스, 백과사전, 블로그, 쇼핑, 웹 문서, 전문정보, 지식iN, 책, 카페글 등 분야별로 볼 수 있는 API

developers.naver.com

 

반응형

'STUDY' 카테고리의 다른 글

[와이어샤크] 프로토콜별 패킷 살펴보기  (0) 2025.05.01
[영화진흥위원회 API] 일별 박스오피스 데이터 활용하기 with Python  (2) 2024.03.11
'STUDY' 카테고리의 다른 글
  • [와이어샤크] 프로토콜별 패킷 살펴보기
  • [영화진흥위원회 API] 일별 박스오피스 데이터 활용하기 with Python
진미
진미
  • 진미
    ABC
    진미
  • 전체
    오늘
    어제
    • 분류 전체보기 (65)
      • PROJECT (3)
      • ALGORITHM (43)
      • STUDY (3)
        • 리액트 (7)
        • 파이썬 (2)
      • 기타 (5)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
    • 설정
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
진미
[NAVER Developers API] 지역 검색 API 활용하기 with Python
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.