1. 프로그램동작 구상
1) 티켓링크, 인터파크 등 원하는 예매 사이트 선정하기
- 티켓링크로 선정
2) 로그인 자동화
- 개발 기간동안 귀차니즘 해결
3) 페이지 이동
- 야구 예매하기 버튼이 있는 위치로 페이지 이동(귀차니즘..해결)
4) 시간에 맞춰서 예매하기 버튼 클릭
- 버튼 활성화 시간에 예매하기 버튼 클릭
5) 자동방지 코드 자동입력
- 자동으로 코드입력
6) 블럭 선택
- 원하는 블록 선택 클릭
7) 좌석 선택
- 원하는 블록 선택 클릭
2. 매크로 제작 선언 및 자동로그인 기능 구현
1) GPT를 통해 매크로 제작 선언하기
- "티켓링크 URL주소"에서 크롬 브라우저 통해 자동으로 로그인 하는 기능을 python으로
구현하고 싶어
1-1) Selenium 및 ChromeDriver 설치
pip install selenium
1-2) Python 스크립트 작성
import os
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 크롬 옵션 설정
options = Options()
options.add_argument("user-data-dir=C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data")
options.add_argument("profile-directory=Default")
# 크롬 드라이버 서비스 설정
service = Service()
def setup_driver():
driver = webdriver.Chrome(service=service, options=options)
return driver
def login_to_payco(driver):
# PAYCO 로그인 페이지로 이동
login_url = "https://id.payco.com/oauth2.0/authorize?serviceProviderCode=TKLINK&scope=&response_type=code&state=552be1ed1114458787d51df604dfdc44&client_id=Z9Ur2WLH9rB59Gy4_cJ3&redirect_uri=https://www.ticketlink.co.kr/auth/callback?selfRedirect=N&userLocale=ko_KR"
driver.get(login_url)
try:
# 로그인 폼 로딩 대기
WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.ID, "id"))
)
# 로그인 정보 입력
driver.find_element(By.ID, "id").send_keys("usernameFieldId") # 사용자 ID 입력
driver.find_element(By.ID, "pw").send_keys("passwordFieldId") # 사용자 비밀번호 입력
# 로그인 버튼 클릭
login_button = driver.find_element(By.ID, "loginBtn")
login_button.click()
# 로그인 완료 대기 (로그인 후 나타나는 요소 ID로 변경 필요)
WebDriverWait(driver, 2).until(
EC.presence_of_element_located((By.ID, "some_element_after_login"))
)
print("로그인 성공.")
except Exception as e:
print(f"로그인 오류 발생: {e}")
def main():
driver = setup_driver()
try:
login_to_payco(driver) # PAYCO 로그인
except Exception as e:
print(f"오류 발생: {e}")
finally:
input("창을 닫으려면 엔터 키를 누르세요...")
driver.quit()
if __name__ == "__main__":
main()
1-3) 자동로그인 완성
'Python' 카테고리의 다른 글
[python] 티켓 자동 예매 매크로 만들기 - 3 (7) | 2024.09.10 |
---|---|
[python] 티켓 자동 예매 매크로 만들기 - 2 (0) | 2024.07.07 |