네이버 개발자센터 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 |