네이버 검색광고 API 사용하기 - Source Code
네이버 검색광고 API 사용하기 - Python 3.8.9
import time
import random
import requests
import pandas as pd
import signaturehelper
def get_header(method, uri, api_key, secret_key, customer_id):
timestamp = str(round(time.time() * 1000))
signature = signaturehelper.Signature.generate(
timestamp, method, uri, SECRET_KEY)
return {'Content-Type': 'application/json; charset=UTF-8',
'X-Timestamp': timestamp, 'X-API-KEY': API_KEY,
'X-Customer': str(CUSTOMER_ID), 'X-Signature': signature}
BASE_URL = 'https://api.naver.com'
method = "GET"
uri = '/keywordstool'
API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
CUSTOMER_ID = "xxxxxxx"
r = requests.get(BASE_URL + uri+'?hintKeywords={}&showDetail=1'.format(input('연관키워드를 조회할 키워드를 입력!!!\n')),
headers=get_header(method, uri, API_KEY, SECRET_KEY, CUSTOMER_ID))
r.json()['keywordList'][0]
df = pd.DataFrame(r.json()['keywordList'])
df.rename({'compIdx': '경쟁정도', 'monthlyAveMobileClkCnt': '월평균클릭수_모바일',
'monthlyAveMobileCtr': '월평균클릭률_모바일', 'monthlyAvePcClkCnt': '월평균클릭수_PC',
'monthlyAvePcCtr': '월평균클릭률_PC', 'monthlyMobileQcCnt': '월간검색수_모바일',
'monthlyPcQcCnt': '월간검색수_PC', 'plAvgDepth': '월평균노출광고수',
'relKeyword': '연관키워드'}, axis=1, inplace=True)
df = df[['연관키워드', '월간검색수_PC', '월간검색수_모바일', '월평균클릭수_PC', '월평균클릭수_모바일',
'월평균클릭률_PC', '월평균클릭률_모바일', '경쟁정도', '월평균노출광고수']]
print(df)
API Key, ID는 별도로 받아서 "xxxxxxxxxxxxxxxxx"에 넣고 실행하면 됩니다.
만약 import signaturehelper에서 error가 발생하면 아래 코드를 작성하여 signaturehelper.py로 저장 후 다시 실행해 보세요~!
import hashlib
import hmac
import base64
class Signature:
@staticmethod
def generate(timestamp, method, uri, secret_key):
message = "{}.{}.{}".format(timestamp, method, uri)
hash = hmac.new(bytes(secret_key, "utf-8"),
bytes(message, "utf-8"), hashlib.sha256)
hash.hexdigest()
return base64.b64encode(hash.digest())