CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·방탄소년당 ·MaClien ·일본산당 ·개발한당 ·자전거당 ·소시당 ·AI당 ·이륜차당 ·골프당 ·소셜게임한당 ·안드로메당 ·콘솔한당 ·키보드당 ·걸그룹당 ·곰돌이당 ·나스당 ·퐁당퐁당 ·가상화폐당 ·바다건너당 ·리눅서당 ·클다방 ·노젓는당 ·디아블로당 ·위스키당 ·찰칵찍당 ·라즈베리파이당 ·육아당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·사과시계당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·물고기당 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·IoT당 ·KARA당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·PC튜닝한당 ·그림그린당 ·소풍간당 ·심는당 ·패스오브엑자일당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

팁과강좌

PC/모바일 파이썬으로 동행복권 로또 매주 자동 구매하기 36

49
2022-01-02 19:24:37 수정일 : 2022-01-02 19:49:17 112.♡.36.224
MakingAlpha

출처 : https://bizanalytics.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%8F%99%ED%96%89%EB%B3%B5%EA%B6%8C-%EB%A1%9C%EB%98%90-%EC%9E%90%EB%8F%99-%EA%B5%AC%EB%A7%A4-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8


안녕하세요. 2022년 새해복 많이 받으시기 바랍니다.


개인적으로 작은 재미가 하나 있었으면 해서 매주 로또 구매하는 것을 올해의 작은 다짐 중 하나로 정했습니다. 

그리고  생각 난 김에 귀차니즘을 해결하기 위해서 코드로 짜서 스케줄러에 등록을 해놨습니다.


파이썬+playwright로 작성했고 코드가 간단해서 주석을 참고하시면 될것 같습니다.

아래 코드가 보기 불편하신 경우 블로그를 참고하시기 바랍니다.





from playwright.sync_api import Playwright, sync_playwright

import time


# 동행복권 아이디와 패스워드를 설정

USER_ID = '유저ID'

USER_PW = '유저PW'


# 구매 개수를 설정

COUNT = 5


def run(playwright: Playwright) -> None:


    # chrome 브라우저를 실행

    browser = playwright.chromium.launch(headless=False)

    context = browser.new_context()


    # Open new page

    page = context.new_page()


    # Go to https://dhlottery.co.kr/user.do?method=login

    page.goto("https://dhlottery.co.kr/user.do?method=login")


    # Click [placeholder="아이디"]

    page.click("[placeholder=\"아이디\"]")


    # Fill [placeholder="아이디"]

    page.fill("[placeholder=\"아이디\"]", USER_ID)


    # Press Tab

    page.press("[placeholder=\"아이디\"]", "Tab")


    # Fill [placeholder="비밀번호"]

    page.fill("[placeholder=\"비밀번호\"]", USER_PW)


    # Press Tab

    page.press("[placeholder=\"비밀번호\"]", "Tab")


    # Press Enter

    # with page.expect_navigation(url="https://ol.dhlottery.co.kr/olotto/game/game645.do"):

    with page.expect_navigation():

        page.press("form[name=\"jform\"] >> text=로그인", "Enter")


    page.goto(url="https://ol.dhlottery.co.kr/olotto/game/game645.do")


    # ---------------------------------------------

    # 사용자 지정 번호 입력 

    # 여기서는 2와 24를 입력하고 나머지는 자동선택함

    # ---------------------------------------------


    # Click label:has-text("2")

    page.click("label:has-text(\"2\")")


    # Click label:has-text("24")

    page.click("label:has-text(\"24\")")


    # 나머지 숫자는 자동 선택함

    # Click text=자동선택

    page.click("text=자동선택")


    # 구매할 개수를 선택

    # Select 5

    page.select_option("select", str(COUNT))


    # Click text=확인

    page.click("text=확인")


    # Click input:has-text("구매하기")

    page.click("input:has-text(\"구매하기\")")


    time.sleep(2)

    # Click text=확인 취소 >> input[type="button"]   

    page.click("text=확인 취소 >> input[type=\"button\"]")


    # Click input[name="closeLayer"]

    page.click("input[name=\"closeLayer\"]")

    # assert page.url == "https://el.dhlottery.co.kr/game/TotalGame.jsp?LottoId=LO40"


    # ---------------------

    context.close()

    browser.close()



with sync_playwright() as playwright:

    run(playwright)




참고로 '김비서로또샀나 '라는 무료 프로그램이 있는데, 구매가 가능한 시간에 알아서 구매를 해주는 프로그램 같습니다만, 번호를 지정할 수는 없고, 자동구매만 지원하는 듯 합니다.


올 한해 좋은일만 가득하시길 바랍니다.


출처 : https://bizanalytics.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%8F%99%ED%96%89%EB%B3%B5%EA%B6%8C-%EB%A1%9C%EB%98%90-%EC%9E%90%EB%8F%99-%EA%B5%AC%EB%A7%A4-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8
MakingAlpha 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [36]
byelife
IP 121.♡.71.207
01-02 2022-01-02 19:41:31
·
selenium 비슷한건가 보네요! 감사합니다
MakingAlpha
IP 112.♡.36.224
01-02 2022-01-02 19:44:47
·
@byelife님 네 selenium과 비슷하고 사용하기에는 좀더 편합니다.
만두다섯개
IP 124.♡.140.76
01-02 2022-01-02 19:44:08
·
우와 멋지네요 ^^
평온나날
IP 125.♡.67.198
01-02 2022-01-02 19:47:02
·
오 감사합니다. ㅎㅎ
realg
IP 39.♡.182.42
01-02 2022-01-02 21:13:21
·
selenium 만 알고 있었는데 덕분에 playwright 를 새롭게 알게됐네요. 감사합니다.
MakingAlpha
IP 112.♡.36.224
01-03 2022-01-03 08:18:11
·
@realg님 네~ ms가 밀어주는 라이브러리입니다. 성능도 훌륭합니다.
띵땅띵땅
IP 1.♡.251.145
01-02 2022-01-02 22:07:09
·
비전문가인데요 혹시 여러대의 PC에 동시에 특정 키보드값 날려주는거 파이썬으로 짜기에 어려울까요?
요즘 배치파일등에 관심이 많아서 이것저것 검색해보곤 있는데 아무래도 비전문가라 이것저것 궁금한게 많네요 ㅎㅎ;;

제가 하고자하는건 고정IP를 이용해 내부네트웍 안에서 동시에 특정 키보드값을 날려주는건데 (ex. A,B,C 등)
구글링정도로 비전문가가 해낼 수 있을까요 ??
MakingAlpha
IP 112.♡.36.224
01-02 2022-01-02 22:25:06
·
@띵땅띵땅님 음.. 원격데스크탑 등 특정환경에서는 가능하지만 매우 불편합니다.
삭제 되었습니다.
삼혼4
IP 121.♡.34.148
01-02 2022-01-02 22:44:07
·
와 대박..
뿌뿌맘
IP 73.♡.182.166
01-02 2022-01-02 23:57:21
·
덕분에 playwright라는 걸 알게되었네요.
예제코드에서 5개 모두 '2', '24', '자동'인가요?
MakingAlpha
IP 112.♡.36.224
01-03 2022-01-03 08:17:14
·
@뿌뿌맘님 네 맞습니다.
무지개우산
IP 58.♡.53.229
01-03 2022-01-03 00:45:36
·
selenium으로 보통 코드 작성했는데 playwritght라는 모듈은 처음 보네요. 훨씬 코드가 간결하네요.
MartinQ
IP 221.♡.7.80
01-03 2022-01-03 01:25:10
·
playwright 좋네요!
글 감사합니다 :)
raindraw
IP 223.♡.164.200
01-03 2022-01-03 07:05:25
·
오 셀레니움보다 편해 보이네요. 알려주셔서 감사합니다.
겁벅
IP 218.♡.46.155
01-03 2022-01-03 07:11:14
·
이런게 있었군요 감사합니다
엄지척
IP 210.♡.78.9
01-03 2022-01-03 07:22:38
·
컴맹은 어떻게 써야 하는지...봐도 모르겠네요. 뭘 설치 해야 하는건가요? ^^;;;;
MakingAlpha
IP 112.♡.36.224
01-03 2022-01-03 08:17:02
·
@엄지척님 개발이 어려우시면 위에 말씀드린 프로그램을 사용하시는게 편하실 듯 해요!
구글에 김비서로또샀나 검색하시면 됩니다
삭제 되었습니다.
ShadowGallery
IP 14.♡.100.223
01-03 2022-01-03 10:36:29
·
playwright 알아갑니다. 감사합니다.
Damper
IP 59.♡.232.219
01-03 2022-01-03 10:46:37
·
진짜 직관적이네요 ㅎㅎ
Saper
IP 223.♡.222.51
01-03 2022-01-03 13:18:59 / 수정일: 2022-01-03 13:19:07
·
리눅스에서는 작동이 불가능한가죠?
MakingAlpha
IP 112.♡.69.146
01-03 2022-01-03 17:50:18
·
@Saper님 리눅스에서도 가능합니다. 다만 headless 환경에서도 동작은 하나 개발할 때는 gui 환경에서 하시는게 나을 거에요
에두아르
IP 118.♡.77.239
01-03 2022-01-03 15:15:30
·
와우! 좋네요~ 감사합니다. 궁금한게 있는데... 로그인 명령은 한번만 실행하고 그 이후 명령어를 반복할 수 있을까요?
MakingAlpha
IP 112.♡.69.146
01-03 2022-01-03 17:50:43
·
@에두아르님 네 조금만 수정하시면 될것 같습니다. For loop 를 통해서 처리하시면 됩니다.
가을남
IP 220.♡.29.38
01-03 2022-01-03 17:22:32
·
감사합니다.
playwright 배워갑니다.
오맹달이
IP 115.♡.129.146
01-03 2022-01-03 19:15:38
·
잘 보았습니다. go 에서 똑같은 구현으로 해보는데 로그인은 되었는데 비정상적인 방법으로 접속하였습니다. 라는 팝업이 뜨네요. 혹시나 조언이 가능하신가 하여 댓글을 달아봅니다
MakingAlpha
IP 112.♡.69.146
01-04 2022-01-04 14:53:21
·
@오맹달이님 golang은 테스트를 안해봐서 잘 모르겠네요 ㅜ
오맹달이
IP 106.♡.65.220
01-04 2022-01-04 15:37:09
·
@MakingAlpha님 감사합니다. 좀더 파봐야겠네요. ㅎㅎ
우리아이유
IP 222.♡.148.101
01-04 2022-01-04 14:26:03
·
신기하네요. 따라 해봐야겠습니다.

블로그를 보다보니
가사도우미의 절도, 현장 검거 그리고 유죄 확정까지 1편이 있던데요.
그 이후가 궁금합니다.
MakingAlpha
IP 112.♡.69.146
01-04 2022-01-04 14:52:59
·
@우리아이유님 안그래도 2편 요구가 많아서 곧 써보겠습니다 ㅠ
도도한도도새
IP 220.♡.69.206
01-04 2022-01-04 16:18:53
·
@MakingAlpha님 정말 기대 됩니다!
rkdvy97
IP 223.♡.173.78
01-04 2022-01-04 14:35:35
·
우와...
심루까
IP 115.♡.202.12
01-04 2022-01-04 21:44:10
·
신기하네요... playwright 이거 써먹을데가 있겠네요 감사합니다
메두사
IP 180.♡.4.24
01-07 2022-01-07 00:10:31
·
올려주신 글 보고 따라만들어봤는데....
비정상적인 방법으로 접속했다고 에러가 나네요 ㅡㅜ
삭제 되었습니다.
오직간판
IP 220.♡.71.43
01-07 2022-01-07 19:13:04
·
파이썬을 모르는 사용자를 위하여 프로그램으로 내놓으시면 좋겟습니다
쿠에에엑
IP 121.♡.253.95
01-24 2023-01-24 23:24:07 / 수정일: 2023-01-25 22:01:17
·
혹 비정상 접속 에러 나시는분은

43라인(page.goto(url="https://ol.dhlottery.co.kr/olotto/game/game645.do") 뒷줄에

page.locator("#popupLayerAlert").get_by_role("button", name="확인").click()

넣어주심 됩니다.

확인 자동 눌러주기 ㅋㅋㅋ
야놀쟈
IP 39.♡.28.55
12-29 2023-12-29 09:03:23
·
오와 , 저도 한번 따라해볼게요. 감사합니다.
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.