반응형

트렌드를 파악하기 위해 네이버에서 데이터랩에서 제공하는 API 중 하나인 쇼핑 인사이트 API를 사용해보았습니다.

막상 사용하려 소스코드를 확인해보니 requests 모듈이 아닌 urllib 모듈이여서 사용하기 난감했습니다.

제가 평소에 requests 모듈에 친숙해 있기 때문이였죠. (requests 모듈은 알아두면 두고두고 쓸데가 많습니다.)

그래서 추후에 또 사용할 수도 있어서 이번 기회를 통해 urllib에서 requests 모듈로 변경해서 사용해보자고 생각했습니다.

 

  원본 소스코드

#-*- coding: utf-8 -*-
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
url = "https://openapi.naver.com/v1/datalab/shopping/categories";
body = "{\"startDate\":\"2017-08-01\",\"endDate\":\"2017-09-30\",\"timeUnit\":\"month\",\"category\":[{\"name\":\"패션의류\",\"param\":[\"50000000\"]},{\"name\":\"화장품/미용\",\"param\":[\"50000002\"]}],\"device\":\"pc\",\"ages\":[\"20\",\"30\"],\"gender\":\"f\"}";

request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
request.add_header("Content-Type","application/json")
response = urllib.request.urlopen(request, data=body.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
    response_body = response.read()
    print(response_body.decode('utf-8'))
else:
    print("Error Code:" + rescode)

 

API에 대한 사용방법 등 상세한 설명은 아래 링크로 달아두었습니다.

쇼핑인사이트 API 사용법

 

쇼핑인사이트 - Datalab

쇼핑인사이트 쇼핑인사이트 개요 개요 쇼핑인사이트 API 개요 쇼핑인사이트 API는 네이버 데이터랩의 쇼핑인사이트를 API로 실행할 수 있게 하는 RESTful API입니다. 네이버 통합검색의 쇼핑 영역과

developers.naver.com

 

 

  수정된 소스코드 (requests 모듈)

import requests
import json
import pprint

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

url = "https://openapi.naver.com/v1/datalab/shopping/categories"

payload = {"startDate": "2017-08-01",
           "endDate": "2017-09-30",
           "timeUnit": "month",
           "category": [
               {"name": "패션의류",
                "param": ["50000000"]},
               {"name": "화장품/미용",
                "param": ["50000002"]}],
           "device": "pc",
           "ages": ["20", "30"],
           "gender": "f"}

headers = {"X-Naver-Client-Id": client_id, "X-Naver-Client-Secret": client_secret, "Content-Type": "application/json"}
res = requests.post(url, data=json.dumps(payload), headers=headers)

print(res.status_code)
aaa = json.loads(res.text)
pprint.pprint(aaa)

 

  소스코드 실행 결과 (requests 모듈)

위 소스를 실행하면 아래와 같은 가독성 있는 결과를 얻을 수 있습니다.

 

내용이 유용하셨나요? 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

caul334@gmail.com

반응형

+ Recent posts