본문 바로가기
꿀팁

쿠팡파트너스 가입 및 승인부터 OPEN API 파이썬 블로그 수익까지[2]_정보를 받아보자

by SENE 2020. 4. 7.
반응형

지난 포스팅에서 가이드 파일을 통해 정보를 받아오는 걸 해봤다.

이제 내가 원하는 키워드를 토대로 정보를 한번 받아보자.

이 내용도 역시나 검색을 통해 data-og-type="article" data-og-title="파이썬으로 쿠팡 파트너스 API 활용하기 - 1" data-og-description="이력- 2019.12.30 포스팅- 2서 해결했다.

https://blog.naver.com/jaejin_me/221754324243

 

파이썬으로 쿠팡 파트너스 API 활용하기 - 1

이력- 2019.12.30 포스팅- 2020.01.01 수정 - API 호출 횟수 설명 추가​안녕하세요. 재진입니다.쿠팡 ...

blog.naver.com

위 블로그 주인분께서 매우 친절하게 내용을 다 넣어주셨다.

나도 공부할 때 참고 많이 했다.

그런데 저 코드도 이전 포스팅과 같은 문제가 발생하더라.

시간 관련 함수부분 수정하고 해결했다.

# coding: utf-8
 
import hmac
import hashlib
import os
import time
import requests
import json
import urllib.request
from selenium import webdriver
import secrets
from urllib.parse import urlencode

__author__ = "Jaejin Jang<jaejin_me@naver.com>"

class cupangMgr:
	DOMAIN = "https://api-gateway.coupang.com"

	def generateHmac(self, method, url, secretKey, accessKey):
		path, *query = url.split("?")
		dateGMT = time.strftime('%y%m%d', time.gmtime())
		timeGMT = time.strftime('%H%M%S', time.gmtime())
		datetime = dateGMT + 'T' + timeGMT + 'Z'
		message = datetime + method + path + (query[0] if query else "")
		signature = hmac.new(bytes(secretKey, "utf-8"), message.encode("utf-8"), hashlib.sha256).hexdigest()

		return "CEA algorithm=HmacSHA256, access-key={}, signed-date={}, signature={}".format(accessKey, datetime, signature)

	def get_productsdata(self, request_method, authorization, keyword, limit):
		URL = "/v2/providers/affiliate_open_api/apis/openapi/products/search?keyword=" + urllib.parse.quote(keyword) + "&limit=" + str(limit)
		url = "{}{}".format(self.DOMAIN, URL)

		response = requests.request(method=request_method, url=url, headers={ "Authorization": authorization, "Content-Type": "application/json;charset=UTF-8" })
		retdata = json.dumps(response.json(), indent=4).encode('utf-8')
		jsondata = json.loads(retdata)
		data = jsondata['data']
		productdata = data['productData']

		return productdata

if __name__ == '__main__':
	method = 'GET'				 #정보를 얻는것이기 때문에 GET
	keyword = '채워 넣으세요' #검색할 키워드, 쿠팡에서 검색하는거랑 결과가 동일합니다.
	limit = 5					 #몇개의 정보를 가져올지 설정. 상위부터 가져옵니다.
	access_key = '채워 넣으세요'			#API access key
	secret_key = '채워 넣으세요'		#API secret key
	URL = "/v2/providers/affiliate_open_api/apis/openapi/products/search?keyword=" + urllib.parse.quote(keyword) + "&limit=" + str(limit)

	test = cupangMgr()
	authorization = test.generateHmac(method, URL, secret_key, access_key)		# HMAC 생성
	productdata = test.get_productsdata(method, authorization, keyword, limit)	# API 호출
	print(productdata) # 결과 확인

나는 키워드를 자동차를 넣고 실행해봤다.

잘된다.

여러분도 잘될까?

지금 막 파이썬을 설치만 하고 동작하고자 하면 절대 안 될 거다.

https://www.python.org/ftp/python/3.8.2/python-3.8.2.exe

먼저 여기 링크를 눌러서 파이썬을 설치해주자.

3.8.2 버전이다.

현재 기준으로 동작 잘돼서 이걸로 사용했다.

이제 에러 내용을 한번 보자.

ModuleNotFoundError : No module named 'requests'가 뜬다.

모듈이 설치 안된 거다.

왜냐하면 내용 최상단에 import requests는 되어 있는데, 실제로 requests 라이브러리가 설치 안되어 있어서 에러가 난 거다.

명령 프롬프트를 열어서 해결 가능하다.

윈도우 키를 누르고 cmd  입력 후 엔터.

그리고 pip install requests를 입력한다.

그럼 자동으로 주르륵 긁어와서 입력된다.

만약 'PIP'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.라는 에러가 뜬다면.

파이썬 재 설치하자.

환경변수가 등록 안된 거다.

변수 따로 등록하는 방법이 있지만, 설치 파일을 다시 열고 수정하는 게 편하다.

설치할 때 Customize installation 옵션을 선택하고 설치하면 중간에 Advanced Options을 선택 가능하다.

여기서 Add Python to environment variables를 선택하고 인스톨하면 된다.

Precompile standard library 도 선택하자. 

꽤 편하다.

자 이제 다시 위에 내용을 입력하면 설치가 잘 될 거다.

그럼 에러가 안 날까?

엄청 난다.

다음 에러를 볼까?

셀레니움(selenium) 모듈 에러다.

이 모듈은 크롤링할 때 쓰는 건데, 자동화까지 완성된 내용에서 필요 부분만 올리시다 보니 포함된 것 같다.

일단 이것도 추가해주자.

그럼 동작 잘한다.

다음 포스팅에서는 이렇게 받은 내용을 저장해 볼 거다.

 

 

반응형