지난 포스팅에 이어, 프라이탁 신제품을 실시간으로 확인하기 2탄을 시작하겠습니다.
지난 글은 여기에서 확인하실 수 있습니다.
파이썬 Schedule
스케쥴러 활용하기
보통 서버에서 Task나 Scheduler 같은 기능을 제공합니다. 특정 시간 주기로 어떤 프로그램 혹은 알고리즘을 실행하는 방식입니다. 파이썬에서도 유사한 기능을 하는 라이브러리가 있습니다.
pip install schedule
간단한 사용법은 다음과 같습니다.
1 2 3 4 5 6 7 | import schedule schedule.every(10).minutes.do(YOUR_FUNCTION) while True: schedule.run_pending() time.sleep(1) | cs |
위 코드는 10분에 한번씩 특정 함수가 실행되게 하고 있습니다. minutes
대신 seconds
처럼 다른 시간 단위로 바꾸면 됩니다.
프라이탁 실시간 재고 확인!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | from selenium import webdriver import schedule import time print('10분마다 프라이탁 홈페이지를 갱신하며, 신제품 여부를 확인합니다.\n') driver = webdriver.Chrome('./chromedriver') preLinks = [] newLinks = [] def writeComment(): global preLinks global newLinks url = 'https://hyongdoc.tistory.com/413' driver.get(url) driver.find_elements_by_css_selector('div.field > input')[0].send_keys("MYID") driver.find_elements_by_css_selector('div.field > input')[1].send_keys("PW") driver.find_elements_by_css_selector('textarea')[0].send_keys("신제품이 등록되었습니다.") driver.find_elements_by_css_selector('div.submit button.btn')[0].click() preLinks = newLinks print(time.strftime('%c', time.localtime(time.time())) + ' ::: 신제품이 나와 댓글을 작성했습니다.') def getFreitag(): print(time.strftime('%c', time.localtime(time.time())) + ' ::: 프라이탁에서 새로 불러옵니다.') global newLinks global preLinks url = 'https://www.freitag.ch/en/f11' driver.get(url) for item in driver.find_elements_by_css_selector('ul.products-list > li > a > img'): newLinks.append([item.get_attribute('src')]) newItems = [x for x in newLinks if x not in preLinks] if len(newItems) != 0: writeComment() else: print("신제품이 없습니다.") # 첨에 일단 실행 getFreitag() # 10분에 한번씩 실행 schedule.every(10).minutes.do(getFreitag) while True: schedule.run_pending() time.sleep(1) | cs |
실행결과...
코드는 크게 2가지 함수로 되어있습니다.
getFreitag
: 프라이탁 홈페이지를 읽어옵니다. 모든 이미지 주소를 리스트로 저장하고, 갱신될 때마다 새로 불러옵니다. 이 때 기존에 갖고 있던 주소 외 새로운 주소가 등장하면, 새로운 이미지가 추가되었다는 것이니writeComment
를 실행합니다.writeComment
: 티스토리 블로그에 접속, 댓글을 작성합니다.
티스토리 댓글을 등록하면, 제 폰으로 알람이 오기 때문에 즉시 프라이탁 홈페이지로 접속하면 됩니다.
성공하면 후기로 구매인증 글로 다시 뵙겠습니다.
'Developer > Python' 카테고리의 다른 글
Continuous, Discrete Wavelet Transform (CWT, DWT) (1) | 2020.10.24 |
---|---|
Wavelet Transform 기본개념 및 Fourier Transform 비교 (1) | 2020.10.23 |
[파이썬 셀레니움] 프라이탁 신제품을 실시간으로 확인하기1 (109) | 2020.09.03 |
[Python] 구글번역 API를 통해 파워포인트, 엑셀 번역하기 (0) | 2020.09.03 |
[Python] Matplotlib 이벤트 핸들링 (마우스 이벤트, 키보드 이벤트) (0) | 2020.07.30 |
댓글