본문 바로가기
정나우/코드

무신사 재입고 알람 프로그램 만들기

by 정_나우 2023. 4. 12.

무신사에 사고 싶은 물건이 생겼습니다. 

 

근데 품절입니다.

 

재입고 된다는데 재입고 알람 버튼이 존재하지 않습니다.

 

그래서 간단하게 물건이 재입고 되면 제 폰으로 알람을 받을 수 있게 프로그램을 짜보았습니다.


 

1. 크롬 드라이버 설치

www.whatismybrowser.com/detect/what-version-of-chrome-do-i-have

 

What version of Chrome do I have?

Wondering what version of Chrome you're running? This page will tell you if you're running Chrome and what version it is

www.whatismybrowser.com

자신의 크롬 버전을 확인하고

 

chromedriver.chromium.org/downloads

 

ChromeDriver - WebDriver for Chrome - Downloads

Current Releases If you are using Chrome version 113, please download ChromeDriver 113.0.5672.24 If you are using Chrome version 112, please download ChromeDriver 112.0.5615.49 If you are using Chrome version 111, please download ChromeDriver 111.0.5563.64

chromedriver.chromium.org

거기에 해당하는 크롬드라이버를 설치합니다.


2. selenium,instagrapi 라이브러리 설치

pip install selenium
pip install instagrapi

터미널에서 다음 명령어를 입력해 라이브러리를 설치합니다.

 

이외에도 추가로 설치하라는 경고 문구가 뜨면 인터넷 검색을 통해 설치해줍니다.


3. 코드

from selenium import webdriver
from selenium.webdriver.common.by import By

from instagrapi import Client
from instagrapi.types import StoryMention, StoryMedia, StoryLink, StoryHashtag
import time
 
driver = webdriver.Chrome(executable_path=r'C:\Users\guswo\Desktop\python_macro\chromedriver.exe')
url = '홈페이지 주소'
driver.get(url)

cl = Client()
cl.login('인스타아이디', '비밀번호')
id='보낼 계정 아이디'
text = '상품이 재입고되었습니다..' + '\n'
user_id = cl.user_id_from_username(id)
i=0

while True: 
    title = driver.find_element(By.XPATH, r'//*[@id="buy_option_area"]/div[7]/div[1]/a').text

    if title == '바로구매':
        cl.direct_send(text, user_ids=[user_id]) #보내기
        print(title)
        break

    else :
        i+=1
        print(f'품절 {i}분')
        driver.refresh()
        time.sleep(60)

 

여기서 바꿔줘야할 게 몇가지 있습니다.

 

3-1. 설치한 크롬 드라이버의 경로를 본인에게 맞게 수정해줍니다.

driver = webdriver.Chrome(executable_path=r'C:\Users\guswo\Desktop\python_macro\chromedriver.exe')

 

3-2. 본인이 구매하고 싶은 물건의 홈페이지 주소로 바꿔줍니다. (무신사가 아닌 다른 홈페이지도 가능)

url = 'https://www.musinsa.com/app/goods/1855444/0'

 

3-3. 본인의 인스타 아이디, 비밀번호를 입력해주고, 메시지를 보낼 다른 계정의 아이디도 입력해줍니다.

cl = Client()
cl.login('나의 인스타 아이디', '비밀번호')
id='보낼 계정 아이디'

저는 부계정을 파서 거기로 메시지를 보냈습니다.

 

3-4. 홈페이지에서 구매버튼의 XPath를 복사해서 넣습니다.

홈페이지 접속 후 F12를 누르고

Ctril+F로 버튼에 써져있는 글자를 검색해 찾거나

버튼 우클릭 →검사를 누르면 바로 찾아줍니다.

 

그리고 이를 우클릭 → Copy → Copy XPath를 해서

title = driver.find_element(By.XPATH, r'//*[@id="buy_option_area"]/div[7]/div[1]/a').text

이곳에 넣어줍니다.

(다른 사이트의 경우에도 똑같이 하면 됩니다.)


그리고 실행하면

정상적으로 작동하는 것을 확인할 수 있습니다.

 

컴퓨터가 알아서 조회하고 리스탁 시 메시지를 보내줘서 더 이상 새로고침 신공을 하지 않아도 됩니다 :)

댓글