-
동행복권 로또 당첨번호 추출하는 파이썬 크롤링 코딩코딩 연습/코딩배우기 2022. 3. 29. 21:48반응형
동행복권 로또 당첨번호 추출하는 파이썬 크롤링 코드를 만들어보았다. 네이버 지식인에 올라온 내용인 [vscode 파이썬 코딩 도와주세요. 로또 몇몇회 치고 버튼누르면 그 회 로또번호 나오게끔 (GUI로) 부탁합니다ㅠㅠ]을 가지고 작성한 코드이다.
네이버 지식인 요구 - 동행복권 로또 당첨번호 추출
파이썬으로 동행 복권 로또 당첨번호를 추출하는 내용이었는데, tkinter GUI에서 로또 회차를 입력하고 버튼을 누르면 requetst와 beautifiulsoup로 당첨번호와 보너스 번호를 추출하고 그 내용을 표시해달라는 요구사항이었다.
로또 당첨번호 추출은 함수로 다시 만들었고, 파이썬 tkinter 부분은 요구자의 코드를 그대로 두고 일부만 추가하였다.소스 코드
from tkinter import * import requests from bs4 import BeautifulSoup def lottery_resust(seq): url = 'https://www.dhlottery.co.kr/gameResult.do?method=byWin' payload = {'drwNo': seq, 'dwrNoList': seq} req = requests.post(url, data=payload) try: int(seq) except ValueError as e: print(f'Error: {e}') return False result = [] soup = BeautifulSoup(req.text, "html.parser") win_res = soup.find("div", attrs=("class","win_result")) no = win_res.select_one('h4 > strong').text _day = win_res.find('p', class_='desc').text print(f'로또 {no} 당첨결과 {_day}') result.append(f'로또 {no} 당첨결과') result.append(f'{_day}') lot_num = [lot.text for lot in win_res.select('div > div.num.win > p > span.ball_645')] lot_bonus = win_res.select_one('div > div.num.bonus > p > span').text print(f'당첨번호 : {lot_num} / 보너스번호 : {lot_bonus}') result.append(f'당첨번호 : {lot_num}') result.append(f'보너스번호 : {lot_bonus}') return result window = Tk() window.title("로또 번호 확인하기") window.geometry("500x300") window.option_add("*Font","궁서 15") #입력창 ent = Entry(window) ent.pack() def ent_com(): #ent_com라는 함수 정의 lot_num = ent.get() res = lottery_resust(lot_num) if res: for r in res: list_content_view.insert(END, r) list_content_view.update() list_content_view.insert(END, '') list_content_view.update() else: list_content_view.insert(END, '오류!! 숫자를 입력하세요.') list_content_view.update() #실행버튼 btn = Button(window) btn.config(text="로또 당첨 번호 확인") btn.config(command=ent_com) btn.pack() scrollbar = Scrollbar(window) scrollbar.pack(side='right', fill='y') list_content_view = Listbox(window, height=6, yscrollcommand=scrollbar.set) list_content_view.pack(side='left', fill='both', expand=True) scrollbar.config(command=list_content_view.yview) window.mainloop()
[실행 결과]
동행복권 로또 회차(예로, 1006)를 입력하고 '로또 당첨 번호 확인'을 클릭하면, 다음과 같이 추출된다
로또 1006회 당첨결과
(2022년 03월 12일 추첨)
당첨번호 : ['8', '11', '15', '16', '17', '37']
보너스번호 : 36회차를 더 입력하면 개행이 밑으로 되면서 계속 결과를 출력한다.
회차 입력 시 숫자가 아닌 문자 등이 입력되면 예외처리를 해서 '오류!! 숫자를 입력하세요.'라는 메시지가 출력된다.
입력화면 출력 결과 ▶포스팅 내용과 유사한 글 더보기
https://goodthings4me.tistory.com/702
로또 당첨번호 회차별 엑셀 저장(파이썬 크롤링)
로또 당첨번호를 확인하는 웹 페이지(동행복권)에 대한 파이썬 크롤링을 하는 김에 이전 포스팅(동행복권 로또 당첨번호 추출하는 파이썬 크롤링 코딩)에 이어서 이번에는 지정된 범위의 회차
goodthings4me.tistory.com
https://goodthings4me.tistory.com/34
[python] 주어진 6개의 숫자 맞추기(로또번호 맞추기)
■ 숫자 1 ~ 45 사이의 6개의 번호가 랜덤하게 추출되어 있는 상태에서 숫자(로또번호)를 1개씩 입력하면 맞춘 번호를 알려준다. 총 6번의 입력 기회가 주어지며, 맞춘 번호는 제외하고 남은
goodthings4me.tistory.com
반응형'코딩 연습 > 코딩배우기' 카테고리의 다른 글
파이썬 truncate() 함수로 텍스트 파일 내용 삭제하기 (0) 2022.04.07 로또 당첨번호 회차별 엑셀 저장(파이썬 크롤링) (0) 2022.03.30 크롤링 도구 셀레니움(selenium) 업그레이드 (1) 2022.03.25 네이버 지식인 명예의전당 질문 키워드 추출(with 파이썬 크롤링) (0) 2022.03.23 폴더 파일리스트 추출하여 엑셀에 저장하고, 파일명 바꾸기(파일이름 일괄변경 포함) (0) 2022.03.15