워드프레스 자동글등록 프로그램에 리밋을 1로 설정해도 실행창에 명령이 계속 반복되고 글 등록은 안되는 현상 질문입니다.

조회수 447회

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 from wordpress_xmlrpc import Client from wordpress_xmlrpc import WordPressPost from wordpress_xmlrpc.methods import posts

author = "wdgg<>"

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

def generateHmac(self, method, url, secretKey, accessKey):
    path, *query = url.split("?")
    os.environ["TZ"] = "GMT+0"
    datetime = time.strftime('%y%m%d') + 'T' + time.strftime('%H%M%S') + '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 = 1 # 몇개의 정보를 가져올지 설정. 상위부터 가져옵니다. 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 호출
productCount = len(productdata)
i = 0
while i < productCount:
    print(productdata[i]['productId'])
    print(productdata[i]['productName'])
    print(productdata[i]['productPrice'])
    print(productdata[i]['productImage'])
    print(productdata[i]['productUrl'])
    print(productdata[i]['keyword'])
    print(productdata[i]['rank'])
    print(productdata[i]['isRocket'])
    print(productdata[i]['isFreeShipping'])
    #print(datetime.datetime.now())
    strProductId = str((productdata[i]['productId']))
    strProductName = (productdata[i]['productName'])
    strProductPrice = str((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("", "", "")
        postx = WordPressPost()
        postx.title = '<p><span style="color:#ececec; background:#e81949; padding:9px 12px 7px 12px; border-radius:30px;">구매하기</span></p>' + 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; font-size:24px;"><strong>바로 구매하기</strong></span></a></p>
        <p><span style="font-family: Helvetica;"><br></span></p>
        <h2><a href="''' + strProductUrl + '''" rel="noopener noreferrer" target="_blank"><span style="font-family: Helvetica; font-size: 19px; color: rgb(243, 121, 52);">▶ 상품사진</span></a></h2>
        <p><a href="''' + strProductUrl + '''" rel="noopener noreferrer" target="_blank"><img src="''' + strProductImage + '''"></a></p>
        <p><span style="font-family: Helvetica;">이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.</span></p>
        <p><br></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

어제 문제는 잘 해결하였고, 간혹 실행시 아래처럼 리밋에 1을 넣던 10을 넣던 글 등록은 안되고 무한으로 계속 실행창에 명령이 반복되는 현상이 나타납니다. 2초안에 거의 100번은 반복된거 같은데 너무 길어서 중간에 삭제한 부분입니다. 아래는 리밋을 1로 하고 실행했을때 1flase true 계속 반복되는 부분입니다. 실행창에서 멈췄을때는 KeyboardInterrupt 아래처럼 종료되구요.. 어떻게 해결해야 할까요

8725711&pageKey=6213368030&itemId=12396252972&vendorItemId=79665840198&traceid=V0-153-6259ab8f4e473b2d 롱패딩 1 False True 2021-12-02 02:44:56.386507 6213368030 스카치 롱패딩 129000 https://static.coupangcdn.com/image/vendor_inventory/ede9/2d310e2213e7b855238772795a4bbcbd22af95302c0371796a41321f802b.jpg https://link.coupang.com/re/AFFSDP?lptag=AF8725711&pageKey=6213368030&itemId=12396252972&vendorItemId=79665840198&traceid=V0-153-6259ab8f4e473b2d 롱패딩 1 False True 2021-12-02 02:44:56.386507 6213368030 스카치 롱패딩 129000 https://static.coupangcdn.com/image/vendor_inventory/ede9/2d310e2213e7b855238772795a4bbcbd22af95302c0371796a41321f802b.jpg https://link.coupang.com/re/AFFSDP?lptag=AF8725711&pageKey=6213368030&itemId=12396252972&vendorItemId=79665840198&traceid=V0-153-6259ab8f4e473b2d 롱패딩 1 False True 2021-12-02 02:44:56.386507 6213368030 스카치 롱패딩 129000 https://static.coupangcdn.com/image/vendor_inventory/ede9/2d310e2213e7b855238772795a4bbcbd22af95302c0371796a41321f802b.jpg https://link.coupang.com/re/AFFSDP?lptag=AF8725711&pageKey=6213368030&itemId=12396252972&vendorItemId=79665840198&traceid=V0-153-6259ab8f4e473b2d 롱패딩 1 False True 2021-12-02 02:44:56.387508 6213368030 스카치 롱패딩 129000 https://static.coupangcdn.com/image/vendor_inventory/ede9/2d310e2213e7b855238772795a4bbcbd22af95302c0371796a41321f802b.jpg https://link.coupang.com/re/AFFSDP?lptag=AF8725711&pageKey=6213368030&itemId=12396252972&vendorItemId=79665840198&traceid=V0-153-6259ab8f4e473b2d 롱패딩 1 False True 2021-12-02 02:44:56.387508 6213368030 스카치 롱패딩 129000 https://static.coupangcdn.com/image/vendor_inventory/ede9/2d310e2213e7b855238772795a4bbcbd22af95302c0371796a41321f802b.jpg https://link.coupang.com/re/AFFSDP?lptag=AF8725711&pageKey=6213368030&itemId=12396252972&vendorItemId=79665840198&traceid=V0-153-6259ab8f4e473b2d 롱패딩 1 False True 2021-12-02 02:44:56.387508 6213368030 스카치 롱패딩 129000 https://static.coupangcdn.com/image/vendor_inventory/ede9/2d310e2213e7b855238772795a4bbcbd22af95302c0371796a41321f802b.jpg https://link.coupang.com/re/AFFSDP?lptag=AF8725711&pageKey=6213368030&itemId=12396252972&vendorItemId=79665840198&traceid=V0-153-6259ab8f4e473b2d 롱패딩 1 False True 2021-12-02 02:44:56.387508 6213368030 스카치 롱패딩 129000 https://static.coupangcdn.com/image/vendor_inventory/ede9/2d310e2213e7b855238772795a4bbcbd22af95302c0371796a41321f802b.jpg https://link.coupang.com/re/AFFSDP?lptag=AF8725711&pageKey=6213368030&itemId=12396252972&vendorItemId=79665840198&traceid=V0-153-6259ab8f4e473b2d 롱패딩 1 False True 2021-12-02 02:44:56.543543Traceback (most recent call last): File "C:\PycharmProjects\pythonProject1\test.py", line 73, in print(datetime.datetime.now()) KeyboardInterrupt

Process finished with exit code -1073741510 (0xC000013A: interrupted by Ctrl+C)

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)