goodthings4me.tistory.com
동행복권 로또 당첨번호 추출하는 파이썬 크롤링 코드를 만들어보았다. 네이버 지식인에 올라온 내용인 [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
블로그 인기글
[엑셀] 근무연수 및 근무 개월수 계산하는 함수
직장을 다니다 보면 몇 년 몇 개월 또는 전체 며칠을 다니고 있는지 궁금할 때가 있다. 아니면, 총무나 인사 일을 할 때 직원들의 근속연수 또는 근속개월수 등을 계산하고 싶을 때도 있다. 이런 경우 엑셀 함수를 활용하면 어떨까!! 근무연수 및 근무 개월수 계산 함수 알아보기 엑셀에서 근무연수 또는 근무 개월수 계산하는 것은 datedif() 함수를 사용하면 간단하게 해결할 수 있다. 아래 이미지를 보면서 설명하면, 셀 E1에 기준일자를 입력하고, 근무연수를 구할 때는 =datedif(B3,$E$1,"Y")&"년" 을 입력한다. 근무개월수는 =datedif(B3,$E$1,"M")&"개월" 처럼 입력한다. 일수까지 파악할 때문 별로 없지만, 심심풀이로 구해보고 싶을 때 =datedif(B3,$E$1,"D")..
goodthings4me.tistory.com
Windows 10 탐색기 느려지는 증상과 해결하는 방법
잘 작동하던 Windows 10 탐색기가 갑자기 느려지는 증상이 발생했을 때 어떻게 조치를 하는지 구글에서 찾아보니 많은 해결책들이 있었으나 어떤 것이 정확한 해결책인지는 알 수가 없었다. 그래서 해결방법이라고 제시한 것들을 정리해 보았다. 윈도우 탐색기가 느려지는 증상 해결 방법 어느 순간부터 응용프로그램(VS Code 등)에서 폴더 열기나 파일 불러오기를 했을 때 검색 팝업창이 안 뜨거나 열리는 시간이 엄청 느려지는 증상과, 더불어서 탐색기도 실행이 많이 느려지는 증상이 있었다. 기존에 사용하던 VS Code에 openpyxl 설치 후 실행이 느려지는 증상이 발생하더니 윈도우10 탐색기도 느려져서 사용할 수가 없었다. 노트북에 OS(Windows10)를 설치한지 1년이 다 되어가긴 했지만, 1개월 전..
goodthings4me.tistory.com
[국세청] 현금영수증가맹점으로 가입바랍니다. 메시지 해결방법(개인사업자)
▶ 현금영수증 가맹점 가입 메시지를 받고... 온라인 쇼핑몰 사업을 시작하려고 사업자등록증을 발급받고 난 후 얼마 안 있어서 국세청으로부터 어느 시점까지 '현금영수증 가맹점'으로 가입하라는 문자메시지가 받았었다. 그 메시지 기한이 오늘 도래했는데, 인터넷에서 찾아보니 홈택스에서 현금영수증 발급 사업자 신청을 할 수가 있었다. [관련내용] 홈>국세정책/제도>전자(세금)계산서/현금영수증/신용카드>현금영수증∙신용카드>가맹점가입 ▶ 홈택스 사이트에서 신청하는 절차는 다음과 같다. 우선, 홈택스에 로그인을 해야 합니다. 세상이 좋아져서 공인인증서 없이도 손쉽게 간편인증 로그인이 가능하다. 여러 인증방법 중 카카오톡 인증이 가장 편리한 거 같다. 간편인증 로그인 후 상단 '조회/발급' 탭 클릭 후 '현금영수증>현금..
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 |
댓글