반응형
Playwright를 활용한 로또 자동 구매 프로그램 만들기
6. 전체 코드
from playwright.sync_api import Playwright, sync_playwright
import time
import random
# 동행복권 계정 정보
USER_ID = '아이디'
USER_PW = '비밀번호'
# 구매 개수 설정
COUNT = 5
balance = ""
def generate_lotto_numbers(count):
lotto_numbers = []
for _ in range(count):
lotto_numbers.append(sorted(random.sample(range(1, 46), 6)))
return lotto_numbers
def run(playwright: Playwright) -> None:
global balance
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
# 로그인 페이지로 이동
page.goto("https://dhlottery.co.kr/user.do?method=login")
# 아이디 및 비밀번호 입력
page.fill("[placeholder=\"아이디\"]", USER_ID)
page.fill("[placeholder=\"비밀번호\"]", USER_PW)
page.press("form[name=\"jform\"] >> text=로그인", "Enter")
# 로그인 완료 대기
page.wait_for_load_state("networkidle")
# 잔액 확인
try:
balance = page.locator(".top_menu .information .money strong").text_content()
except:
balance = "잔액 확인 실패"
print(f"현재 잔액: {balance}")
# 로또 구매 페이지 이동
page.goto("https://ol.dhlottery.co.kr/olotto/game/game645.do")
page.wait_for_load_state("networkidle")
# 자동 번호 생성
lotto_numbers = generate_lotto_numbers(COUNT)
print(f"구매할 로또 번호: {lotto_numbers}")
for numbers in lotto_numbers:
for i in numbers:
selector = f"#checkNumGroup > label:nth-child({2 * i + 1})"
page.click(selector)
page.click("text=확인")
time.sleep(1)
# 구매 버튼 클릭
page.click("input:has-text(\"구매하기\")")
time.sleep(2)
# 최종 확인 버튼 클릭
page.click("text=확인 취소 >> input[type=\"button\"]")
# 창 닫기
page.click("input[name=\"closeLayer\"]")
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
위 코드는 Playwright를 활용하여 로또 자동 구매를 수행하는 전체 코드입니다.
반응형
'Knowledge > IT, 인터넷' 카테고리의 다른 글
아파치 실행 실패 원인과 해결 방법: mod_jk(AJP Connector) 이슈 분석 (1) | 2025.03.12 |
---|---|
Playwright를 활용한 로또 자동 구매 프로그램 만들기-1 (0) | 2025.03.10 |
GUI 없는 리눅스에서 Playwright 실행하기 - chromium_headless_shell 활용 (0) | 2025.02.28 |
아이리버 LTE 라우터 사용 후기 및 설정 팁 (0) | 2024.12.10 |
Telegram 메시지 보내기 에러, 바뀐 사용법 (0) | 2023.04.05 |
댓글