무신사에 사고 싶은 물건이 생겼습니다.
근데 품절입니다.
재입고 된다는데 재입고 알람 버튼이 존재하지 않습니다.
그래서 간단하게 물건이 재입고 되면 제 폰으로 알람을 받을 수 있게 프로그램을 짜보았습니다.
1. 크롬 드라이버 설치
www.whatismybrowser.com/detect/what-version-of-chrome-do-i-have
자신의 크롬 버전을 확인하고
chromedriver.chromium.org/downloads
거기에 해당하는 크롬드라이버를 설치합니다.
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
이곳에 넣어줍니다.
(다른 사이트의 경우에도 똑같이 하면 됩니다.)
그리고 실행하면
정상적으로 작동하는 것을 확인할 수 있습니다.
컴퓨터가 알아서 조회하고 리스탁 시 메시지를 보내줘서 더 이상 새로고침 신공을 하지 않아도 됩니다 :)
'정나우 > 코드' 카테고리의 다른 글
우분투 터미널 안 열림 & Xterm 없을 때 (0) | 2023.08.22 |
---|---|
우분투 18.04 python3 버전만 바꾸기 (0) | 2023.08.22 |
파이썬, pip 설치 오류 (0) | 2023.04.12 |
Opencr로 다이나믹셀(Dynamixel) 제어하기 (1) | 2022.11.07 |
Yolov7 실시간 객체 탐지하기 (5) | 2022.09.26 |
댓글