[zerobase_데이터 취업스쿨_스터디노트] 24. Naver API

김소희·2023년 12월 22일
0

study_note

목록 보기
24/50

이제 NAVER API 단계 이다..
이번 수업에서는 어떤 걸 배우게 될지 기대가 된다..!!

먼저 네이버 개발자 센터로 들어가서 진행이 된다.

서비스 API 로 들어간다

오픈 API 이용 신청을 클릭한다.

rmekdma

- Application
    - 어플리케이션 등록
    - 어플리케이션 이름 ds_study
    - 사용 API
        - 검색
        - 데이터랩(검색어트렌드)
        - 데이터랩(쇼핑인사이트)
    - 환경추가
        - WEB 설정
        - https://localhost

순서대로 등록을 해주면 된다.

2. 네이버 검색 API 사용하기

# 네이버 검색 API 예제 - 블로그 검색
import os
import sys
import urllib.request

client_id = "0E9uYunLwFj9iC_sNdB_"
client_secret = "XsR3qCWmRf"

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() # 200이면 정상

if(rescode==200): # 정상이면
    response_body = response.read() # 읽어오기
    print(response_body.decode('utf-8')) # utf-8로 디코딩
else:
    print("Error Code:" + rescode)
response.getcode() # 200이면 정상
response.code, response.status, response

글자로 읽을 경우에 , decode utf-8 설정

print(response_body.decode('utf-8'))

# 네이버 검색 API 예제 - 책 검색
import os
import sys
import urllib.request

client_id = "0E9uYunLwFj9iC_sNdB_"
client_secret = "XsR3qCWmRf"

encText = urllib.parse.quote("파이썬")
url = "https://openapi.naver.com/v1/search/book?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() # 200이면 정상

if(rescode==200): # 정상이면
    response_body = response.read() # 읽어오기
    print(response_body.decode('utf-8')) # utf-8로 디코딩
else:
    print("Error Code:" + rescode)

(1) search url


# encText = urllib.parse.quote("몰스킨")
# url = "https://openapi.naver.com/v1/search/shop?query=" + encText # JSON

def gen_search_url(api_node, search_text, start_num, disp_num):
    base = "https://openapi.naver.com/v1/search"
    node = "/" + api_node + ".json"
    param_query = "?query=" + urllib.parse.quote(search_text)
    param_start = "&start=" + str(start_num)
    param_disp = "&display=" + str(disp_num)
    
    return base + node + param_query + param_start + param_disp

gen_search_url("shop", "TEST", 10 , 3)
    

결과)

'https://openapi.naver.com/v1/search/shop.json?query=TEST&start=10&display=3'

(2) get_result_onepage()



import json
import datetime

def get_result_onepage(url):
    request = urllib.request.Request(url)
    request.add_header("X-Naver-Client-Id",client_id)
    request.add_header("X-Naver-Client-Secret",client_secret)
    responss = urllib.request.urlopen(request)
    print("[%s] Url Request Success" % datetime.datetime.now()) # 현재 시간 출력
    return json.loads(response.read().decode('utf-8'))

여기까지 잘 하다가 갑자기 에러가 났다.
404에러인데

404Invalid search api (존재하지 않는 검색 api 입니다.) API 요청 URL에 오타가 있는지 확인합니다.

라고 설명페이지에 나와있다. 그러나 도저히 변경을 해봐도 모르겠어서

일단 인구분석으로 넘어가고 추후에 다시 돌아와서 복습해 보기로 한다.

profile
AI 개발자로 가는 길 두렵지 않아요

0개의 댓글