PS4 프로 자동 구입 매크로 만들기 -2-

과도한 매크로 사용은 서버에 큰 부담이 될 수 있으므로 반복적인 작업을 자동화 하거나 테스트 용도로 한정해서 사용하시기 바랍니다. 매크로 사용 시 발생하는 모든 문제에 대한 책임은 전적으로 매크로 사용자 본인에게 있습니다.

 

지난 포스팅에서 브라우저를 띄우는 데까지 성공 했습니다.

 

if __name__ == "__main__":
    driver = webdriver.Firefox()
    driver.wait = WebDriverWait(driver, 2)

    driver.get("http://google.com")

 

이처럼 driver가 셀레늄의 webdriver 인스턴스이고 실제 셀레늄에서 제공하는 많은 기능들을 다 이 driver를 통해서 사용합니다. 더 많은 기능을 알고 싶거나 예습이 필요하면 아래 사이트를 방문해 보세요. 참고로 selenium도 그렇고 이 업계에는 한글로 된 문서가 거의 없습니다.

http://selenium-python.readthedocs.io/index.html 

https://www.guru99.com/selenium-tutorial.html

 

다시 위 소스로 돌아가서 첫 두 줄은 뭔가 초기화 하는 부분이고 driver.get()은 특정 사이트로 접속하는 건데 이런 사소한 건 그냥 그런갑다 하고 복사 붙여넣기 하시면 됩니다. 우리에게 중요한 건 어떻게 사이트를 분석해서 자동으로 입력을 처리하느냐이지 책 보듯 소스를 공부하는 건 필요 없으니까요. 따라서 앞으로도 소스 한 줄 한 줄은 따로 설명하지 않습니다.  이런 기능을은 이렇게 구현한다는 걸 예시를 보여드리니 복사 붙여넣기로 쓰시거나 본인의 상황에 맡게 살짝 수정 및 응용해서 사용하시면 됩니다.

 

시나리오 만들기

우선 디자인을 해 봅시다. 직접 쇼핑몰에 접속 해 물건 하나 구입할 때 필요한 작업들을 단계별로 진행하면서 과정을 적어보세요. 그리고 각 과정에서 내 손으로 입력해야 되는 부분도 같이 체크해 봅니다. 이 부분이 실제로 코딩을 해야 되는 부분입니다.

 

1. 홈페이지 접속

2. 로그인 링크 누름

3. 아이디/패스워드 입력 후 로그인 버튼 누름

4. 구입하려는 물품 페이지로 이동

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

5. 재고여부 확인

    5-1. 품절이면 새로고침

    5-2. 구입 가능하면 바로 구매하기 버튼 누름

6. 주문서 작성 후 결제하기버튼 누름

 

콘솔게임 국내판매 1위 쇼핑몰에서 해보니 위와 같은 시나리오가 나왔습니다. 미리 말씀드립니다만 이 과정에서 주문서 완료하는 데 까지만 예제를 드리고 시간이 되면 다른 쇼핑몰 하나 더 선정해서 예제를 만들어 보겠습니다. 이후 과정 및 원하는 시나리오 적용 등은 스스로 응용해 보세요.

 

다시 시나리오에서 사실 1과 2는 하나로 합칠 수 있습니다. 바로 로그인 링크로 접속하면 되죠. 이 시나리오를 코드로 표현해 보면 아래와 같습니다.

 

#-*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

WAITTIME = 1000
SLEEPSEC = 5
LOOP = 3 # -1 for infinite

HOMEPAGE = "http://gamewoori.com/shop/member.html?type=login"
ITEMURL = "http://gamewoori.com/shop/shopdetail.html?branduid=885806&xcode=009&mcode=001&scode=&type=X&search=&sort=regdate"

def login(driver):
    print 'login 처리 함수'

def checkStock(driver, i):
    print '재고 확인 함수'

def checkout(driver):
    print '구매하기 누르는 함수'

def order(driver):
    print '주문서 작성 함수'

if __name__ == "__main__":
    driver = webdriver.Firefox()
    driver.wait = WebDriverWait(driver, 2)

    driver.get(HOMEPAGE)

    login(driver)
    driver.get(ITEMURL)

    i = 1
    while(checkStock(driver, i)):
        i += 1
        time.sleep(SLEEPSEC)
        if (i > LOOP and LOOP != -1):
            break
        driver.get(ITEMURL)

    checkout(driver)

    order(driver)

 

쉽죠? 이제 우리는 맨 위에 있는 login 부터 order 까지 함수 4개만 작성하면 됩니다. 다음 포스팅에서는 자동 로그인을 만들어 보도록 하겠습니다.

 

[출처] https://gencode.me/blogs/post/44/

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
47 [python] 파이썬 f-string (파이썬 스트링 앞에 f') file 졸리운_곰 2021.07.17 446
46 [Python] 파이썬으로 복리 계산하기 file 졸리운_곰 2021.07.17 562
45 [python, 파이썬] 연습 문제: 복리 이자 계산 졸리운_곰 2021.07.17 925
44 [python] 파이썬 기초 문법 정리 졸리운_곰 2021.05.17 861
43 [python] [GPU]GPU 사용 Python 코드 실행 졸리운_곰 2021.04.21 567
42 [python] 파이썬 스케줄 수행 - schedule, apscheduler file 졸리운_곰 2020.07.26 454
41 파이썬 스크립트 스케줄링하기 file 졸리운_곰 2020.07.26 1012
40 Python Scheduler 만들기(APScheduler) 졸리운_곰 2020.07.26 1089
39 [python] 주피터 노트북에서 패키지 설치 졸리운_곰 2018.12.06 1225
38 Data Structures and Algorithm In python 파이썬으로 자료구조와 알고리즘 : 출처 인터넷 file 졸리운_곰 2018.08.27 514
37 Mastering Basic Algorithms in the Python Language 이북 출처 인터넷 file 졸리운_곰 2018.08.27 629
36 python dev 사용자 입력과 출력 졸리운_곰 2018.03.01 472
35 APScheduler 사용기 file 졸리운_곰 2018.02.09 1070
34 [파이썬, 조각코드] 스케쥴러 만들기. 졸리운_곰 2018.02.09 795
33 Python virtualenv 정리 (Linux/Windows) 졸리운_곰 2018.01.23 486
32 [Python] 코드난독화 file 졸리운_곰 2018.01.19 1002
31 Python - Way to recursively find and replace string in text files 졸리운_곰 2017.08.30 478
30 Python Coding for Minecraft 마인크래프트를 위한 파이썬 프로그래밍 file 졸리운_곰 2017.05.05 1794
29 Atom을 Python 개발 툴로 사용하기 file 졸리운_곰 2017.03.06 938
28 IPython Notebook을 통한 데이터 분석 #3 file 졸리운_곰 2017.03.05 754
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED