네이버 쇼핑 인사이트 with Python
이번 포스팅에서는 네이버에서 제공하고 있는 네이버 쇼핑 인사이트 데이터를 한번 다루어보고자 한다. 아래 링크에서도 확인 가능하지만 네이버 쇼핑 인사이트란 네이버 사이트에서 특정 쇼핑 카테고리 분야별 검색 클릭 추이 데이터를 제공함으로써 특정 제품 카테고리에 대한 소비자 관심을 확인할 수 있다. 자세한 내용은 아래 링크에서 확인하기 바라고, 이번 포스팅에서는 내가 가장 좋아하는 콜라, 사이다, 이온음료 제품에 대한 네이버 쇼핑 클릭 추이를 비교해보고자 한다. 당연히 여기서도 파이썬으로 분석할 것이다. 네이버 API 키 값을 신청하고 확인해보고 싶은 특정 제품의 쇼핑 카테고리 값을 네이버 쇼핑 사이트에서 가져오면 분석을 위한 사전 준비는 끝이다!
데이터 추출
네이버 API에서 제공하고 있는 파이썬 코드를 그대로 가져왔다. 19년 1월부터 20년 10월까지의 기간, 연령/성별은 전체로 하는 조건으로 데이터 추출 요청하도록 하겠다.
import os
import sys
import urllib.request
import json
client_id = "~"
client_secret = "~"
url='https://openapi.naver.com/v1/datalab/shopping/categories'
body = '''{\"startDate\":\"2019-01-01\",\"endDate\":\"2020-10-30\",\"timeUnit\":\"month\",
\"category\":
[
{\"name\":\"사이다\",\"param\":[\"50002253\"]},
{\"name\":\"콜라\",\"param\":[\"50002254\"]},
{\"name\":\"이온음료\",\"param\":[\"50002256\"]}
],
\"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)
데이터 DataFrame
위에서 추출한 코드를 데이터 프레임화 하겠다. 데이터가 Json으로 구성되어 있기 때문에 아래 코드처럼 반복문으로 쉽게 데이터프레임화할 수 있을 것이다.
data=json.loads(scraped)
dt=dict()
months=[]
for i in data['results'][0]['data']:
months.append(i['period'])
for a in range(0,3):
ratio=[]
for b in data['results'][a]['data']:
ratio.append(b['ratio'])
dt[data['results'][a]['title']]=ratio
df=pd.DataFrame.from_dict(dt)
df['Month']=months
df['Period']=df['Month'].apply(lambda x : x[2:7] )
df2=df.set_index('Period')
데이터 시각화
위에서 추출한 데이터를 바탕으로 그래프 시각화하도록 하겠다.
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 12
plt.figure(figsize=(16,8))
plt.title("콜라 사이다 이온음료 네이버 검색 클릭 추이")
plt.plot(df2.index,df2['사이다'])
for x, y in enumerate( list(df2['사이다']) ):
plt.text(x, y, y, fontsize=10, color='#ff0000',
horizontalalignment='center', verticalalignment='bottom')
plt.plot(df2.index,df2['콜라'])
for x, y in enumerate( list(df2['콜라']) ):
plt.text(x, y, y, fontsize=10, color='#ff0000',
horizontalalignment='center', verticalalignment='bottom')
plt.plot(df2.index,df2['이온음료'])
for x, y in enumerate( list(df2['이온음료']) ):
plt.text(x, y, y, fontsize=10, color='#ff0000',
horizontalalignment='center', verticalalignment='bottom')
plt.legend(['사이다','콜라','이온음료'],loc='upper left')
plt.show()
이미 많이 예상했겠지만 역시나 콜라 제품들의 검색 클릭 추이가 사이다, 이온음료 대비 높은 점이 두드러지게 나타났다. 탄산음료 하면 콜라이고, 음료수 하면 콜라기 때문에 당연한 결과이다. 콜라, 사이다 말고 다른 제품 분야로 비교하려고 했는데 생각나는 게 없었다. 다음 시간에는 분야가 아닌 특정 제품을 기준으로 비교하도록 하겠다. ㅃㅇ
'문송충의 코딩하기 > 네이버 API' 카테고리의 다른 글
[파이썬] - 네이버 데이터랩 API를 활용해서 마켓컬리 네이버 검색량을 알아보자 (1) | 2020.10.29 |
---|---|
[파이썬] - "마켓컬리" 키워드가 포함된 네이버 블로그 포스팅 수 확인해보자 with 네이버 API (2) | 2020.10.28 |
[갤럭시워치 vs 애플워치] - 네이버 쇼핑 검색어 클릭량 추이 비교 (0) | 2020.09.10 |
"스마트 워치" 네이버 쇼핑 결과 가져오기 With Naver API Python (2) | 2020.08.29 |
댓글