지난 포스팅에서 가이드 파일을 통해 정보를 받아오는 걸 해봤다.
이제 내가 원하는 키워드를 토대로 정보를 한번 받아보자.
이 내용도 역시나 검색을 통해 data-og-type="article" data-og-title="파이썬으로 쿠팡 파트너스 API 활용하기 - 1" data-og-description="이력- 2019.12.30 포스팅- 2서 해결했다.
https://blog.naver.com/jaejin_me/221754324243
위 블로그 주인분께서 매우 친절하게 내용을 다 넣어주셨다.
나도 공부할 때 참고 많이 했다.
그런데 저 코드도 이전 포스팅과 같은 문제가 발생하더라.
시간 관련 함수부분 수정하고 해결했다.
# 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) 모듈 에러다.
이 모듈은 크롤링할 때 쓰는 건데, 자동화까지 완성된 내용에서 필요 부분만 올리시다 보니 포함된 것 같다.
일단 이것도 추가해주자.
그럼 동작 잘한다.
다음 포스팅에서는 이렇게 받은 내용을 저장해 볼 거다.
'꿀팁' 카테고리의 다른 글
쿠팡파트너스 가입 및 승인부터 OPEN API 파이썬 블로그 수익까지[4]_글쓰기API 막힌다? (1) | 2020.04.08 |
---|---|
쿠팡파트너스 가입 및 승인부터 OPEN API 파이썬 블로그 수익까지[3]_데이터를 저장하자 (1) | 2020.04.07 |
쿠팡파트너스 가입 및 승인부터 OPEN API 파이썬 블로그 수익까지[1] (0) | 2020.04.06 |
윈도우10 공유폴더 안될 때 꿀팁! (0) | 2020.03.26 |
sk u+ 유무선공유기 포트포워딩 하는 방법 (0) | 2020.03.25 |