import requests
from bs4 import BeautifulSoup
import pymysql
import time
import random

from datetime import datetime
now1 = datetime.now()
print("ws 시작 시점: "+str(now1))

def check_category(category_number):

    cookies = {
        'NNB': '4ALAOQCWVEIGO',
        'SHP_BUCKET_ID': '8',
        'ASID': 'daeec2280000019299abaaac0000006a',
        '_fwb': '483MAGGpQIU0PEmDHbL2xs.1729500414751',
        'nstore_session': 'gI9ulNb43KSY95BvBmjwca3R',
        'nstore_pagesession': 'i9v5vsqQSVjPJlsMfzh-497488',
        'NAC': '0XQxBYQWOUSK',
        'NACT': '1',
        '066c80626d06ffa5b32035f35cabe88d': '%DE%DBk%9AN%05%60%D2n%1D%F70%99R%E0%17%24%C5%0C%85%17%B7D7%BCZo%F6%85%C5%9B%B0E%8D%3C%21D%5E%8AM%EDy%21%85%29%27mf%3A%E8%98%AFNW%5C%60%A3%19E%2F%AF%8E%BC%23%B3%FF%AB%DE.%AD%A7%AF%04%E6%88%D9%E7%EFs%FD%D5%E7%B11%C2%06o%89%97L%81XT%9E%CF%09%C85%A2t-e%26%06%21%18C%5B56%A7Pax%07%F5G%17%A3%CDAz%0C%98%AE%8B%18%06%BD%88%87%D7eLb0%91fv%BAh%99%3Exud%16%84+%DD%8F%2F',
        '1a5b69166387515780349607c54875af': '%22%9E%93z%F6+X%0B',
        'nid_inf': '315165700',
        'NID_AUT': 'A6JwinlqvogYsOrc5Mxqwm8Yid1ashs6nc8Z8n+GRtdzELmwZ7fvetP/VaXHc0A2',
        'NID_JKL': 'mRAcPQv3U7se08BItIRCDMHi928mMjxYXwx1Y8pdeW8=',
        'CBI_SES': 'eHl4oajnp4gxcFY8cElq/0706EekUyv5IJFn99LeRbQkBh1juR6P1LFsRVKpfwmA1Ymt6vbXOx9y+0B2nVeMAuf/Y6rntUCPq8FzPLtTuTCBa13OTA0Yh6zrYausrY9VA0rEPNKRFHBIokQbyf8p8opvEjglTH0sW3MKrLrfeGyw3gBki8XtL9oe6lzAmZxpjQ2WMYZ71mX//hOMPAuX5m5ZO8dJuhKlxjKHyOca8OOzuZeAGjIi7yBgwki83xj1d4FnZjt3+JAfkULTvPYgB94D2RM8KW9FQjtB1bNg4s0X5Pj5cYTQm+C2Txk7Sg1x+sNSyazV4S4U1OfO9FXrjhJA8Q+4MLLJ9bNVo2ZQqK9+lMrmyxfBohr5xFcxre9ebWvmtMyLxZRbh4Pt/1XKg2YCFim3q8Em1JzPPX8FSLMhNQ1vJnZfOWs9eBsVy/ja38WUwf1SDgZ2BeWh3AcxRfmJ7IXG0I91wOG7hYFSvUU=',
        'NID_SES': 'AAABmHz/flS6cCYqQUSDJ3Wium3+Jaa2n6bKEePGv5aqyQM/0avSaV1aNHjX9LK3lqkWwQyRKgwjqcbuxqLIF191iGYcs5UgrO3eO4qaqa7p34HwKxaBdTMyBfpqG1nmefQ6jqy+bSAdFfVIc+KhJP9KJgRBOGFFbWtpFkMyu9zKmSXbsufYBtTWk2J2s/CCI84ayHhTcBjqPlnS+FaGWZjIRPXCOO3rR6cS7ayZwnaQeVmbwxAgXxFOKmQ8lzkTx4fbHi+fVMg/QrCJcEdMyLLcJtNN51CLxBPG957PA62n1q54MPSfWzuZ8lIrX5OxzPgwDFkHQAoyJYPV2qd0hwPYVHIPwC/QKD1Is74yKjA7a6JM9kYKqaLGW4rHV+wUastu5kxjiibCnu0ZG7Om5OHachcFt8dv/xHpfaIE3333Y6Dr6M8TyYWmLCw9a8Pc95p39IJE0KZ59cRLozVvQpvBewfWvoTFu6cQk9RKFDCvcAhVoTBwqR1WqrmAgVxaoh8NSEiBzUP6vilhtzmNwEDWg61zdp3JTIiMR3dMgQ5WVIXF',
        'SRT30': '1742862622',
        'SRT5': '1742862622',
        'CBI_CHK': '"r5V0mf9uRUZHZ/vmLGy3ez7f4/k4aqWXL5o03eN68focGPmUa4TzZLEd/QU9s59nKebKdKc2WtVV5teKX2l7LwgK2OqN5oi8DGuYYFXqW8ViXu9ofXajMy+J7K/vJ5RYVruqu1NvG2njSwKL7Tr6XZBWxTu705aqVTH72yVBmIU="',
        '_naver_usersession_': 't1OebTv3gVeKhwxIWXHi/7WQ',
        'page_uid': 'i+cIhsqVN8CssetXt34ssssst6d-013567',
        'sus_val': 'NwfopyvtuIQbuLrzrWU+zKRE',
        'NX_BT_ID': '-1',
        'BUC': 'Xn8Kj-sWqcjTcXnEAV9F_458zH8P1qWb9L5lQsdf3rQ=',
    }

    headers = {
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
        'accept-language': 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7',
        'priority': 'u=0, i',
        'sec-ch-ua': '"Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"',
        'sec-ch-ua-arch': '"x86"',
        'sec-ch-ua-bitness': '"64"',
        'sec-ch-ua-form-factors': '"Desktop"',
        'sec-ch-ua-full-version-list': '"Chromium";v="134.0.6998.118", "Not:A-Brand";v="24.0.0.0", "Google Chrome";v="134.0.6998.118"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-model': '""',
        'sec-ch-ua-platform': '"Windows"',
        'sec-ch-ua-platform-version': '"10.0.0"',
        'sec-ch-ua-wow64': '?0',
        'sec-fetch-dest': 'document',
        'sec-fetch-mode': 'navigate',
        'sec-fetch-site': 'none',
        'sec-fetch-user': '?1',
        'upgrade-insecure-requests': '1',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
        # 'cookie': 'NNB=4ALAOQCWVEIGO; SHP_BUCKET_ID=8; ASID=daeec2280000019299abaaac0000006a; _fwb=483MAGGpQIU0PEmDHbL2xs.1729500414751; nstore_session=gI9ulNb43KSY95BvBmjwca3R; nstore_pagesession=i9v5vsqQSVjPJlsMfzh-497488; NAC=0XQxBYQWOUSK; NACT=1; 066c80626d06ffa5b32035f35cabe88d=%DE%DBk%9AN%05%60%D2n%1D%F70%99R%E0%17%24%C5%0C%85%17%B7D7%BCZo%F6%85%C5%9B%B0E%8D%3C%21D%5E%8AM%EDy%21%85%29%27mf%3A%E8%98%AFNW%5C%60%A3%19E%2F%AF%8E%BC%23%B3%FF%AB%DE.%AD%A7%AF%04%E6%88%D9%E7%EFs%FD%D5%E7%B11%C2%06o%89%97L%81XT%9E%CF%09%C85%A2t-e%26%06%21%18C%5B56%A7Pax%07%F5G%17%A3%CDAz%0C%98%AE%8B%18%06%BD%88%87%D7eLb0%91fv%BAh%99%3Exud%16%84+%DD%8F%2F; 1a5b69166387515780349607c54875af=%22%9E%93z%F6+X%0B; nid_inf=315165700; NID_AUT=A6JwinlqvogYsOrc5Mxqwm8Yid1ashs6nc8Z8n+GRtdzELmwZ7fvetP/VaXHc0A2; NID_JKL=mRAcPQv3U7se08BItIRCDMHi928mMjxYXwx1Y8pdeW8=; CBI_SES=eHl4oajnp4gxcFY8cElq/0706EekUyv5IJFn99LeRbQkBh1juR6P1LFsRVKpfwmA1Ymt6vbXOx9y+0B2nVeMAuf/Y6rntUCPq8FzPLtTuTCBa13OTA0Yh6zrYausrY9VA0rEPNKRFHBIokQbyf8p8opvEjglTH0sW3MKrLrfeGyw3gBki8XtL9oe6lzAmZxpjQ2WMYZ71mX//hOMPAuX5m5ZO8dJuhKlxjKHyOca8OOzuZeAGjIi7yBgwki83xj1d4FnZjt3+JAfkULTvPYgB94D2RM8KW9FQjtB1bNg4s0X5Pj5cYTQm+C2Txk7Sg1x+sNSyazV4S4U1OfO9FXrjhJA8Q+4MLLJ9bNVo2ZQqK9+lMrmyxfBohr5xFcxre9ebWvmtMyLxZRbh4Pt/1XKg2YCFim3q8Em1JzPPX8FSLMhNQ1vJnZfOWs9eBsVy/ja38WUwf1SDgZ2BeWh3AcxRfmJ7IXG0I91wOG7hYFSvUU=; NID_SES=AAABmHz/flS6cCYqQUSDJ3Wium3+Jaa2n6bKEePGv5aqyQM/0avSaV1aNHjX9LK3lqkWwQyRKgwjqcbuxqLIF191iGYcs5UgrO3eO4qaqa7p34HwKxaBdTMyBfpqG1nmefQ6jqy+bSAdFfVIc+KhJP9KJgRBOGFFbWtpFkMyu9zKmSXbsufYBtTWk2J2s/CCI84ayHhTcBjqPlnS+FaGWZjIRPXCOO3rR6cS7ayZwnaQeVmbwxAgXxFOKmQ8lzkTx4fbHi+fVMg/QrCJcEdMyLLcJtNN51CLxBPG957PA62n1q54MPSfWzuZ8lIrX5OxzPgwDFkHQAoyJYPV2qd0hwPYVHIPwC/QKD1Is74yKjA7a6JM9kYKqaLGW4rHV+wUastu5kxjiibCnu0ZG7Om5OHachcFt8dv/xHpfaIE3333Y6Dr6M8TyYWmLCw9a8Pc95p39IJE0KZ59cRLozVvQpvBewfWvoTFu6cQk9RKFDCvcAhVoTBwqR1WqrmAgVxaoh8NSEiBzUP6vilhtzmNwEDWg61zdp3JTIiMR3dMgQ5WVIXF; SRT30=1742862622; SRT5=1742862622; CBI_CHK="r5V0mf9uRUZHZ/vmLGy3ez7f4/k4aqWXL5o03eN68focGPmUa4TzZLEd/QU9s59nKebKdKc2WtVV5teKX2l7LwgK2OqN5oi8DGuYYFXqW8ViXu9ofXajMy+J7K/vJ5RYVruqu1NvG2njSwKL7Tr6XZBWxTu705aqVTH72yVBmIU="; _naver_usersession_=t1OebTv3gVeKhwxIWXHi/7WQ; page_uid=i+cIhsqVN8CssetXt34ssssst6d-013567; sus_val=NwfopyvtuIQbuLrzrWU+zKRE; NX_BT_ID=-1; BUC=Xn8Kj-sWqcjTcXnEAV9F_458zH8P1qWb9L5lQsdf3rQ=',
    }

    response = requests.get('https://search.shopping.naver.com/catalog/'+str(category_number), cookies=cookies, headers=headers)

    if response.status_code == 418:
        print("418에러입니다. 대기 후에 다시 시작합니다. 5분대기합니다.")
        # time.sleep(600)
        time.sleep(random.randint(300, 600))
        return check_category(str(rows[i][1]));
    elif response.status_code == 405:
        print("405에러발생! 프로그램 전체 종료")
        sys.exit()  # 프로그램 종료
    else:
        pass

    soup = BeautifulSoup(response.text, 'html.parser')
    div_tag = soup.find('div', class_='top_summary_title__ViyrM')
    try:
        h2_tag = div_tag.find('h2')  # div 내부의 h2 태그 찾기
        cate_name_extracted = h2_tag.text.strip()
    except:
        print(category_number)
        print(response)
        print("카테고리넘버 오류")
        cate_name_extracted = "-ERROR-"

    print(response)
    print(cate_name_extracted)


    conn = pymysql.connect(host="58.227.42.5", user="phpmyadminuser", password="yourpassword", database="naver_auto_price", charset='utf8')
    cursor = conn.cursor()
    sql = "UPDATE products SET cate_name = '"+str(cate_name_extracted)+"' WHERE catalog_num = '"+str(category_number)+"';"
    cursor.execute(sql)
    conn.commit()
    conn.close()

    # 텍스트 추출




conn = pymysql.connect(host="58.227.42.5", user="phpmyadminuser", password="yourpassword", database="naver_auto_price", charset='utf8')
cursor = conn.cursor()
sql = "SELECT * FROM products;"
cursor.execute(sql)
rows = cursor.fetchall()
cursor.close()
conn.close()


i = 0
for a in reversed(rows):
    # time.sleep(15)
    time.sleep(random.randint(10, 20))
    check_category(str(rows[i][1]))
    i = i+1


now2 = datetime.now()
print("ws 종료 시점: "+str(now2))
print("프로그램 가동 시간: "+str(now2-now1))
print("\n\n\n\n")
