본문 바로가기
문송충의 코딩하기/네이버 API

[파이썬] - 네이버 데이터랩 API를 활용해서 마켓컬리 네이버 검색량을 알아보자

by 동장군님 2020. 10. 29.
728x90
반응형

2020/10/28 - [문송충의 코딩하기/네이버 API] - [파이썬] - "마켓컬리" 키워드가 포함된 네이버 블로그 포스팅 수 확인해보자 with 네이버 API

 

[파이썬] - "마켓컬리" 키워드가 포함된 네이버 블로그 포스팅 수 확인해보자 with 네이버 API

마켓컬리 최근에 마켓컬리 인사이트라는 책을 재밌게 읽었다. 마켓컬리라는 서비스를 한 번도 사용하지 않았지만 현재 이커머스 업계에서는 마켓컬리 만큼 가장 소비자로부터 관심을 받는 플

yobro.tistory.com

 

위 포스팅에 이어서 마켓컬리에 대해 계속해서 파이썬으로 다루고자 한다. 이번 포스팅에도 역시나 네이버 API를 통해 마켓컬리에 대해 심층 분석하고자 한다. 네이버 API에서 다양한 데이터를 제공하고 있는데 여기서는 네이버 데이터랩 즉 유저들이 네이버에서 "마켓컬리"라는 키워드를 얼마나 검색했는지 검색량을 경쟁사와 비교하면서 분석해보도록 하겠다. 19년 1월 이후 약 22 개월 동안 사람들이 마켓컬리를 검색하는 추이를 한번 살펴보고, 경쟁사로 볼 수 있는 오아시스마켓과 헬로네이처와 비교하면서 마켓컬리의 위엄을 확인하고자 한다. 경쟁사로는 롯데, GS, 신세계, 쿠팡이 있는데 여기는 워낙 다른 사업도 많이 하는 기업이기 때문에 순전히 마켓컬리 경쟁사로 볼 수 없어서 제외했다. 바로 코드로 넘어가겠다!

 

API 키는 아래 링크에서 신청하기 바란다.

developers.naver.com/products/datalab/

 

데이터랩 API 소개

통합검색어 트렌드, 쇼핑인사이트

developers.naver.com

 

 


아래 코드를 돌리면 마켓컬리, 오아시스마켓, 헬로네이처의 월별 네이버 쿼리량을 확인할 수 있다. 그리고 아래에 있는 코드는 내가 작성한 게 아니라 네이버 개발 가이드에서 제공하고 있는 파이썬 코드 그대로 가져온 것이다. API 키 값만 받으면 엄청 쉽게 데이터를 추출할 수 있다.

 

import urllib.request
import json
import pandas as pd
import re

client_id = ""
client_secret = ""

url = "https://openapi.naver.com/v1/datalab/search"
body = '''{"startDate":"2019-01-01","endDate":"2020-10-29","timeUnit":"month",
        "keywordGroups":[{"groupName":"마켓컬리","keywords":["마켓컬리","마켓 컬리"]},
        {"groupName":"오아시스마켓","keywords":["오아시스마켓"]},
        {"groupName":"헬로네이처","keywords":["헬로네이처"]}
        ]}'''

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()
    query=response_body.decode('utf-8')
    data_query=json.loads(query)
else:
    print("Error Code:" + rescode)

 

데이터를 추출 완료했으면 바로 전처리 작업에 들어가겠다. 날짜가 가장 중요하다고 보이는데 이걸 먼저 datetime 형태로 변환한 다음 연도와 월만 볼 수 있게끔 다시 전환하는 작업만 하면 된다.

 

dates=[]
kurly_queries=[]
for i in data_query['results'][0]['data']:
    dates.append(i['period'])
    kurly_queries.append(i['ratio'])
    
oasis_queries=[]
for i in data_query['results'][1]['data']:
    oasis_queries.append(i['ratio'])

hello_queries=[]
for i in data_query['results'][2]['data']:
    hello_queries.append(i['ratio'])
    
df=pd.DataFrame([dates,kurly_queries,oasis_queries,hello_queries]).T
df.columns=['Date','mk','os','hn']

import datetime
df['Date']=df['Date'].apply(lambda x: datetime.datetime.strptime(x,'%Y-%m-%d'))
df['Date']=df['Date'].apply(lambda x: x.strftime('%y%m'))

df['mk']=df['mk'].astype(int)
df['os']=df['os'].astype(int)
df['hn']=df['hn'].astype(int)

 

마지막으로 시각화이다. 마켓컬리, 오아시스마켓, 헬로네이처 월별 검색 쿼리량을 라인 차트로 그려보겠다. 

 

import matplotlib.pyplot as plt

plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 12
plt.figure(figsize=(16,12))

plt.plot(df['Date'],df['mk'])
for i in range(len(df)):
    plt.text(i,df['mk'][i],df['mk'][i],fontsize=8, horizontalalignment='center', verticalalignment='bottom')

plt.plot(df['Date'],df['os'])
for i in range(len(df)):
    plt.text(i,df['os'][i],df['os'][i],fontsize=8, horizontalalignment='center', verticalalignment='bottom')
    
plt.plot(df['Date'],df['hn'])
for i in range(len(df)):
    plt.text(i,df['hn'][i],df['hn'][i],fontsize=8, horizontalalignment='center', verticalalignment='bottom')


plt.legend(['마켓컬리','오아시스마켓','헬로네이처'],loc='upper left')
plt.title('네이버 검색 트렌드')

 

 

 

 

마켓컬리의 위엄이 아닐 수 없다. 마켓컬리 검색량은 전년 대비 큰 폭으로 증가해서 경쟁사와 격차가 더 벌어지고 있는 상황이다. 올해 2월 3월에 코로나가 막 터지고 나서 마켓컬리 검색량이 최고치를 찍었고 그 후에 2차 코로나 확산 시즌 8월, 9월에도 다시 증가한 점을 확인할 수 있다. 코로나가 검색량에 영향을 줬다라는게 내 개인적인 추정이긴 하지만 어쨌든 코로나가 마켓컬리 성장에 어느 정도 발판이 됐다는 점은 부정할 수 없을 것이다. 오아시스마켓, 헬로네이처는 생각보다 그냥 그런 거 같다.

 

728x90
반응형

댓글