2020/10/28 - [문송충의 코딩하기/네이버 API] - [파이썬] - "마켓컬리" 키워드가 포함된 네이버 블로그 포스팅 수 확인해보자 with 네이버 API
위 포스팅에 이어서 마켓컬리에 대해 계속해서 파이썬으로 다루고자 한다. 이번 포스팅에도 역시나 네이버 API를 통해 마켓컬리에 대해 심층 분석하고자 한다. 네이버 API에서 다양한 데이터를 제공하고 있는데 여기서는 네이버 데이터랩 즉 유저들이 네이버에서 "마켓컬리"라는 키워드를 얼마나 검색했는지 검색량을 경쟁사와 비교하면서 분석해보도록 하겠다. 19년 1월 이후 약 22 개월 동안 사람들이 마켓컬리를 검색하는 추이를 한번 살펴보고, 경쟁사로 볼 수 있는 오아시스마켓과 헬로네이처와 비교하면서 마켓컬리의 위엄을 확인하고자 한다. 경쟁사로는 롯데, GS, 신세계, 쿠팡이 있는데 여기는 워낙 다른 사업도 많이 하는 기업이기 때문에 순전히 마켓컬리 경쟁사로 볼 수 없어서 제외했다. 바로 코드로 넘어가겠다!
API 키는 아래 링크에서 신청하기 바란다.
developers.naver.com/products/datalab/
아래 코드를 돌리면 마켓컬리, 오아시스마켓, 헬로네이처의 월별 네이버 쿼리량을 확인할 수 있다. 그리고 아래에 있는 코드는 내가 작성한 게 아니라 네이버 개발 가이드에서 제공하고 있는 파이썬 코드 그대로 가져온 것이다. 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월에도 다시 증가한 점을 확인할 수 있다. 코로나가 검색량에 영향을 줬다라는게 내 개인적인 추정이긴 하지만 어쨌든 코로나가 마켓컬리 성장에 어느 정도 발판이 됐다는 점은 부정할 수 없을 것이다. 오아시스마켓, 헬로네이처는 생각보다 그냥 그런 거 같다.
'문송충의 코딩하기 > 네이버 API' 카테고리의 다른 글
[파이썬] - 네이버 쇼핑 인사이트 API를 통해 콜라, 사이다, 이온음료 제품 카테고리 검색 클릭량 추이 비교 (1) | 2020.11.01 |
---|---|
[파이썬] - "마켓컬리" 키워드가 포함된 네이버 블로그 포스팅 수 확인해보자 with 네이버 API (2) | 2020.10.28 |
[갤럭시워치 vs 애플워치] - 네이버 쇼핑 검색어 클릭량 추이 비교 (0) | 2020.09.10 |
"스마트 워치" 네이버 쇼핑 결과 가져오기 With Naver API Python (2) | 2020.08.29 |
댓글