[파이썬]쿠팡파트너스 워드프레스 자동 포스팅 with linux# Script/Python2022. 10. 21. 13:54
Table of Contents
728x90
반응형
모듈선언
#!/usr/bin/env python3
import datetime
import hmac
import hashlib
import os
import time
from time import gmtime, strftime
import requests
import json
import urllib.request
import secrets
from urllib.parse import urlencode
from wordpress_xmlrpc import Client
from wordpress_xmlrpc import WordPressPost
from wordpress_xmlrpc.methods import posts
api인증
class cupangMgr:
DOMAIN = "https://api-gateway.coupang.com"
# HMAC 인증정보 생성
def generateHmac(self, method, url, secretKey, accessKey):
path, *query = url.split("?")
os.environ["TZ"] = "GMT+0"
datetime = strftime('%y%m%d', gmtime()) + 'T' + strftime('%H%M%S', gmtime()) + '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"})
#print(response)
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'
keyword = '컴퓨터'
limit = 5
access_key = '[accesskey]'
secret_key = '[secretkey]'
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)
productdata = test.get_productsdata(method, authorization, keyword, limit)
productCount = len(productdata)
i = 0
while i < productCount:
strProductId = str((productdata[i]['productId']))
strProductName = (productdata[i]['productName'])
strProductPrice = str(format((productdata[i]['productPrice']),',')) # 통화 세자리마다 콤마
strProductImage = (productdata[i]['productImage'])
strProductUrl = (productdata[i]['productUrl'])
strKeyword = (productdata[i]['keyword'])
strRank = str((productdata[i]['rank']))
strIsRocket = bool(productdata[i]['isRocket'])
strIsFreeShipping = bool(productdata[i]['isFreeShipping'])
if strIsRocket == True:
strIFRocket = '로켓배송 가능 상품이라 로켓배송 지역이면, 로켓배송으로 빠르게 배송 받아보실 수 있습니다.'
else:
strIFRocket = '로켓배송 가능한지는 아래 배송도착일 확인 링크에서 확인 가능합니다.'
if strIsFreeShipping == True:
strIFFreeship = '배송비는 무료이며,'
else:
strIFFreeship = '배송비는 아래 배송도착일 확인 링크에서 확인 가능하며,'
client = Client("[워드프레스주소]/xmlrpc.php", "[계정아이디]", "[비밀번호]")
postx = WordPressPost()
postx.title = strProductName
postx.slug = strProductName
postx.content = '<p><span style="font-family: Helvetica;">오늘 소개해드릴 상품은 ' + strProductName + '''입니다.</span></p>
<p><span style="font-family: Helvetica;">이 상품은 쿠팡에서 ''' + strKeyword +''' 조회시 추천 순위 ''' + strRank + '''위 입니다.</span></p>
<p><span style="font-family: Helvetica;">''' + strKeyword + ''' 인기순위, ''' + strKeyword + ''' 가격정보는 아래 본문에서 확인 가능합니다.</span></p>
<p><span style="font-family: Helvetica; color: rgb(40, 50, 78);">(업데이트 날짜 : ''' + time.strftime('%y-%m-%d') + ''')</span></p>
<p><span style="font-family: Helvetica;">상품별 추천순위, 판매가격, 배송비, 로켓배송 가능여부, 상품사진을 확인 하실 수 있습니다.</span></p>
<p><span style="font-family: Helvetica;"><br></span></p>
<h1><span style="font-family: Helvetica; font-size: 19px; color: rgb(209, 72, 65);">''' + strProductName + '''</span></h1>
<p><span style="font-family: Helvetica;"><br></span></p>
<h2><span style="font-family: Helvetica; font-size: 19px; color: rgb(243, 121, 52);">▶ 판매가격</span></h2>
<p><span style="font-family: Helvetica;">가격은 <span style="color: rgb(44, 130, 201);">''' + strProductPrice + '''원</span> 입니다.</span></p>
<p><span style="font-family: Helvetica;">(아래 링크에서 현재 가격을 확인 하세요.)</span></p>
<p><a href="''' + strProductUrl + '''" rel="noopener noreferrer" target="_blank"><span style="font-family: Helvetica;"><strong>★ 현재가격 보기 ★</strong></span></a></p>
<p><span style="font-family: Helvetica;"><br></span></p>
<h2><span style="font-family: Helvetica; font-size: 19px; color: rgb(243, 121, 52);">▶ 배송비, 로켓배송</span></h2>
<p><span style="font-family: Helvetica;">''' + strIFFreeship + ''',</span></p>
<p><span style="font-family: Helvetica;">''' + strIFRocket + '''</span></p>
<p><span style="font-family: Helvetica;">(배송비, 로켓배송 가능 여부가 변동될 수 있으니 아래 링크에서 확인하세요.)</span></p>
<p><a href="''' + strProductUrl + '''" rel="noopener noreferrer" target="_blank"><span style="font-family: Helvetica;"><strong>★ 배송비, 로켓배송 보기 ★</strong></span></a></p>
<p><span style="font-family: Helvetica;"><br></span></p>
<h2><span style="font-family: Helvetica; font-size: 19px; color: rgb(243, 121, 52);">▶ 상품 상세정보, 구매후기</span></h2>
<p><span style="font-family: Helvetica;">추가적인 상품정보, 상품사진 및 구매후기는 아래 상품정보 상세보기에서 확인 가능합니다.</span></p>
<p><a href="''' + strProductUrl + '''" rel="noopener noreferrer" target="_blank"><span style="font-family: Helvetica;"><strong>★ 상품정보 상세보기 ★</strong></span></a></p>
<p><span style="font-family: Helvetica;"><br></span></p>
<h2><span style="font-family: Helvetica; font-size: 19px; color: rgb(243, 121, 52);">▶ 상품사진</span></h2>
<p><img src="''' + strProductImage + '''"></p>
<p align=center><br><font color=red>"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."</font></p>'''
postx.terms_names = {
'post_tag': [strKeyword+' 추천',strKeyword+' 순위',strKeyword+' 비교',strKeyword+' 가격비교'],
'category': ['Coupangs']
}
postx.post_status = 'publish'
client.call(posts.NewPost(postx))
time.sleep(10)
i = i + 1
하단에 메타 태그 넣기
<meta content="0,url=[쿠팡링크]" http-equiv="refresh"></meta>
728x90
반응형
'# Script > Python' 카테고리의 다른 글
[파이썬]쿠팡파트너스 워드프레스 자동 포스팅 수정 (0) | 2022.12.26 |
---|---|
[파이썬]네이버 인기검색 키워드 20위 랜덤으로 1개 고르기 (0) | 2022.10.21 |
[파이썬]셀레니움 프록시 설정 (0) | 2022.10.19 |
[파이썬]티스토리 오픈API이용 (0) | 2022.10.14 |
[파이썬]워드프레스 자동포스팅 (0) | 2022.10.13 |
@다크쉐라빔 :: 다크쉐라빔의 주절주절
안녕하세요. 이곳은 IT위주의 잡다한 정보를 올려두는 개인 블로그입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!