Programming/Python & Django
로또 번호 생성 파이썬 코드 (동행복권 사이트 번호별 통계 기반)
hdhwang
2023. 3. 19. 18:26
동행복권 > 번호별 통계 페이지에서 각 번호별 당첨 횟수를 BeautifulSoup 라이브러리를 활용하여 크롤링 후 숫자별 당첨 횟수만큼 번호를 생성한 후 랜덤 번호를 중복되지 않게 생성 후 오름차순으로 정렬하여 5게임을 출력하는 코드
import random
from bs4 import BeautifulSoup
import requests
base_url = 'https://dhlottery.co.kr/gameResult.do?method=statByNumber'
con = requests.get(base_url)
soup = BeautifulSoup(con.content, 'html.parser')
stats_table = soup.find('table', {'class': 'tbl_data tbl_data_col'})
stats_list = []
ball_list = []
for tr in stats_table.find_all('tr'):
ball_data = []
for td in tr.find_all('td'):
data = td.get_text()
if '\n\n' not in data:
ball_data.append(int(data))
if ball_data:
stats_list.append(ball_data)
for stats in stats_list:
number = stats[0]
count = stats[1]
for i in range(count):
ball_list.append(number)
random.shuffle(ball_list)
for i in range(5):
num_list = []
str_num_list = ''
for j in range(6):
lotto = random.choice(ball_list)
while lotto in num_list:
lotto = random.choice(ball_list)
num_list.append(lotto)
num_list.sort()
for j in range(6):
str_num = '%02d' % int(num_list[j])
str_num_list += str_num if str_num_list == '' else f' {str_num}'
print(f'{chr(i+65)} : {str_num_list}')