본문 바로가기

API

[네이버 개발자센터 API] 지역 인기 핫 플레이스 정보 가져오기

반응형

네이버 API의 지역 검색을 이용해서 검색어의 지역별 인기 가게의 리스트를 가져와보겠습니다.

 

1. 네이버 API 가입(SKIP 가능)

2. 검색 > 지역 API 이용하기

3. 지역별 인기 가게의 리스트 확인

 

 

1. 네이버 API 가입(SKIP 가능)

https://yenpa.tistory.com/2

 

[네이버 개발자센터 API] API 이용신청 및 Application 등록방법

네이버 개발자센터에서 API 이용신청 및 Application을 등록하는 방법을 알아보겠습니다. 1. 사이트접속 2. 로그인 3. API 이용신청 및 Application 등록 4. 등록정보확인 1. 사이트 접속 아래의 네이버 개

yenpa.tistory.com

 

 

2. 검색 > 지역 API 이용하기

입력 가능한 파라미터를 살펴보겠습니다.

query, display, start, sort 4가지가 있는데 query는 필수 파라미터이고 나머지는 필수가 아닌

default 값이 정해져 있습니다.

query(검색어)를 갈비로 해서 결과를 확인해 보겠습니다.

display는 한 번에 가져올 리스트 수로 5개로 지정하겠습니다.

아래가 가져오는 코드입니다.

client_id, client_secret은 본인의 데이터가 필요합니다.

query='갈비'
#client_id = "YOUR_CLIENT_ID"
#client_secret = "YOUR_CLIENT_SECRET"

encText = urllib.parse.quote(query)
url = "https://openapi.naver.com/v1/search/local.json?query=" + encText + \
        "&display=5"

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()
    result = json.loads(response_body)
else:
    print("Error Code:" + rescode)

아래와 같은 결과들을 얻을 수 있습니다.

출력 파라메터를 보겠습니다.

아래의 빨간 네모 부분에 실제 가게 정보가 들어가 있습니다.

 

 

3. 지역별 인기 가게의 리스트 확인

갈비 검색어에 대한 전국 시도별 인기 가게의 리스트를 확인해보겠습니다.

regions=['서울','경기','인천','강원','충청','대전','세종','전라','광주','경상','대구','부산','제주']

#client_id = "YOUR_CLIENT_ID"
#client_secret = "YOUR_CLIENT_SECRET"


result_list=[]
for region in regions:
    query='갈비'
    query = region + ' ' + query
    encText = urllib.parse.quote(query)
    url = "https://openapi.naver.com/v1/search/local.json?query=" + encText + \
            "&display=5"

    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()
    
    #print(query)
    if(rescode==200):
        response_body = response.read()
        results = json.loads(response_body)['items']
        
        for result in results:
            result['region']=region
            result['title']=result['title'].replace('<b>','').replace('</b>','')
            result_list.append(result)
    else:
        print("Error Code:" + rescode)
        
        
df=pd.DataFrame(result_list)

지역을 아래로 한정했고 각 지역별로 for문을 실행하는데

query를 지역 + 갈비의 검색어로 API를 실행했습니다.

regions=['서울','경기','인천','강원','충청','대전','세종','전라','광주','경상','대구','부산','제주']
for region in regions:
    query='갈비'
    query = region + ' ' + query
    encText = urllib.parse.quote(query)

실제 데이터가 response의 'items'에 있어 그 부분만을 따로 저장했고, result['region']에 지역 정보를 넣었습니다.

title에 bold의 html tag가 있어 제거했습니다.

if(rescode==200):
    response_body = response.read()
    results = json.loads(response_body)['items']

    for result in results:
        result['region']=region
        result['title']=result['title'].replace('<b>','').replace('</b>','')
        result_list.append(result)

 

자 자금 지역별 결과를 확인해볼까요.

서울에서는 원조 조박집, 대성갈비, 봉피양방이 등이 플레이스의 상위권에 위치하고 있습니다.

 

제가 살고 있는 경기도를 보겠습니다.

수원 갈비들이 플레이스 상위를 차지하고 있는 것을 알 수 있습니다.

df.loc[df['region']=='경기']

부산의 경우는 아래의 가게들이 검색이 됩니다.

df.loc[df['region']=='부산']

 

이상으로 네이버 API의 지역 검색을 이용해서 검색어의 지역별 인기 가게의 리스트를 확인해 봤습니다.

 

 

반응형