이제 NAVER API 단계 이다..
이번 수업에서는 어떤 걸 배우게 될지 기대가 된다..!!
먼저 네이버 개발자 센터로 들어가서 진행이 된다.
서비스 API 로 들어간다
오픈 API 이용 신청을 클릭한다.
rmekdma
- Application
- 어플리케이션 등록
- 어플리케이션 이름 ds_study
- 사용 API
- 검색
- 데이터랩(검색어트렌드)
- 데이터랩(쇼핑인사이트)
- 환경추가
- WEB 설정
- https://localhost
순서대로 등록을 해주면 된다.
개발가이드 : https://developers.naver.com/docs/serviceapi/search/blog/blog.md#python
urllib : http 프로토콜에 따라서 서버의 요청/응답을 처리하기 위한 모듈
urllib.request : 클라이언트의 요청을 처리하는 모듈
urllib.parse: url 주소에 대한 분석
# 네이버 검색 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
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)
# 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'
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에 오타가 있는지 확인합니다.
라고 설명페이지에 나와있다. 그러나 도저히 변경을 해봐도 모르겠어서
일단 인구분석으로 넘어가고 추후에 다시 돌아와서 복습해 보기로 한다.