Naver API 쇼핑 인사이트
네이버 데이터랩에서는 단순히 키워드에 대한 검색량뿐만 아니라 특정 쇼핑 분야에서 분석하고자 하는 상품 키워드가 얼마나 많이 클릭되었는지 클릭 추이를 확인할 수 있다. 정확한 클릭량은 알 수 없지만 요청한 기간 중 클릭 횟수가 가장 높은 값을 100으로 두고 나머지 값을 100에 대한 상대적인 값 즉 데이터 추이 정도는 알 수 있다. 여기서는 내가 요즘 들어 가장 사고 싶은 갤럭시 워치에 대한 클릭 추이를 경쟁 제품 애플 워치와 비교함으로써 갤럭시 워치가 국내 시장에서 소비자로부터 어느 정도로 관심을 받고 있는지 알아보도록 하겠다.
developers.naver.com/products/datalab/
Python Code
API를 사용할려면 당연히 먼저 Open API를 신청해서 API 키값을 받아야 된다. 위 링크에 들어가면 오픈 Api 이용 신청 버튼이 있으니 클릭해서 신청하면 바로 키 값이 부여가 될 것이다. API 키 값을 부여받은 다음 아래 코드를 돌리면 쇼핑 클릭 데이터 추이를 볼 수 있을 것이다. 데이터 추출에 파라미터 즉 조건을 설정해야 되는데 여기서 나는 기간은 우선 19년 1월부터 20년 8월까지 월 단위로 데이터를 뽑고자 하고 쇼핑 키워드는 갤럭시 워치와 애플 워치로 지정하겠다.
import os
import sys
import urllib.request
import json
client_id = "~"
client_secret = "~"
url='https://openapi.naver.com/v1/datalab/shopping/category/keywords'
body = '''{\"startDate\":\"2019-01-01\",\"endDate\":\"2020-08-31\",\"timeUnit\":\"month\",
\"category\":\"50000262\",\"keyword\":[{\"name\":\"갤럭시워치\",\"param\":[\"갤럭시 워치\"]},{\"name\":\"애플워치\",\"param\":[\"애플 워치\"]}],
\"device\":\"\",\"ages\":[],\"gender\":\"\"}'''
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()
scraped=response_body.decode('utf-8')
else:
print("Error Code:" + rescode)
데이터 전처리
위에서 추출한 데이터를 데이터 프레임으로 정리하겠다. 월 별로 갤럭시 워치, 애플 워치 별로 쇼핑 클릭 추이가 어느 정도 인지 데이터 프레임 화해서 정리해보면 아래와 같이 볼 수 있다.
data=json.loads(scraped)
months=[]
ss_ratio=[]
for i in data['results'][0]['data']:
months.append(i['period'])
ss_ratio.append(i['ratio'])
a_ratio=[]
for i in data['results'][1]['data']:
a_ratio.append(i['ratio'])
import pandas as pd
df=pd.DataFrame()
df['Month']=months
df['갤럭시 워치']=ss_ratio
df['애플 워치']=a_ratio
import datetime
df['Month']=df['Month'].apply(lambda x: datetime.datetime.strptime(x,'%Y-%m-%d'))
df['Month']=df['Month'].apply(lambda x: datetime.datetime.strftime(x,'%y-%m'))
df.set_index('Month',inplace=True)
Visualiztion
간단하게 라인 그래프로 시각화해서 지난 1년 8개월 동안 갤럭시 워치와 애플 워치간 네이버 내 쇼핑 클릭 데이터 추이를 비교해보겠다.
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 10
plt.figure(figsize=(16,12))
plt.plot(df.index,df['갤럭시 워치'],label='갤럭시 워치')
for x,y in enumerate(df['갤럭시 워치']):
plt.text(x,y,y,fontsize=10)
plt.plot(df.index,df['애플 워치'],label='애플 워치')
for x,y in enumerate(df['애플 워치']):
plt.text(x,y,y,fontsize=10)
plt.legend(loc='upper left')
plt.show()
예상과는 전혀 다른 결과가 나왔다. 스마트 워치하면 당연히 애플 워치가 연상되고 세계에서 가장 많이 팔리는 스마트 워치가 애플 워치라서 당연히 클릭 추이도 애플 워치가 많을 것으로 생각했는데 결과는 정 반대로 나왔다. 그래서 궁금해서 뉴스를 찾아봤더니 2년 전 자료이긴 하지만 세계 시장과 달리 국내 시장에서는 갤럭시 워치가 시장 점유율 44%로 애플 워치 24%보다 약 2배 높은 점유율을 보이고 있었다. 역시 삼성 공화국이다. 여하튼 이번에 새로 나온 갤럭시 워치 3 가격이 빨리 떨어지길 바란다.
'문송충의 코딩하기 > 네이버 API' 카테고리의 다른 글
[파이썬] - 네이버 쇼핑 인사이트 API를 통해 콜라, 사이다, 이온음료 제품 카테고리 검색 클릭량 추이 비교 (1) | 2020.11.01 |
---|---|
[파이썬] - 네이버 데이터랩 API를 활용해서 마켓컬리 네이버 검색량을 알아보자 (1) | 2020.10.29 |
[파이썬] - "마켓컬리" 키워드가 포함된 네이버 블로그 포스팅 수 확인해보자 with 네이버 API (2) | 2020.10.28 |
"스마트 워치" 네이버 쇼핑 결과 가져오기 With Naver API Python (2) | 2020.08.29 |
댓글