달나라 노트

Python에서 로또 당첨 번호 가져오기 본문

Python/Python ETC

Python에서 로또 당첨 번호 가져오기

CosmosProject 2021. 1. 4. 02:21
728x90
반응형

 

 

 

Python에서 Lotto 번호를 가져오기 위해선 먼저 동행복권 측에서 제공하는 데이터를 이용해야합니다.

 

https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=(원하는 회차 번호)

가장 먼저 위 주소를 봐주세요.

로또 관련 정보를 가져오기 위해선 위 url을 이용해야 합니다.

 

url을 한번 단위별로 살펴보면

https://www.dhlottery.co.kr -> 이 부분은 동행복권 홈페이지 주소입니다.

method=getLottoNumber -> 이 부분은 Lotto 번호를 가져오라는 의미를 나타냅니다.

drwNo=(원하는 회차 번호) -> 이 부분에 바로 우리가 원하는 회차 번호를 넣어줘야 합니다.

 

 

 

 

 

https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=1

 

한 번 위 주소를 여러분의 브라우저에 입력해봅시다.

그러면 아래와 같은 json형식의 데이터가 나올거예요.

 

{"totSellamnt":3681782000,"returnValue":"success","drwNoDate":"2002-12-07","firstWinamnt":0,"drwtNo6":40,"drwtNo4":33,"firstPrzwnerCo":0,"drwtNo5":37,"bnusNo":16,"firstAccumamnt":863604600,"drwNo":1,"drwtNo2":23,"drwtNo3":29,"drwtNo1":10}

 

 

위 데이터를 보면

"returnValue":"success" -> 이 부분은 제가 요청한 Lotto관련 데이터가 정상적으로 반환되었다는 것입니다.

"drwNoDate":"2002-12-07" -> 이 부분은 해당 회차의 로또가 진행되었던 날짜를 의미하네요.

"drwtNo6":40,"drwtNo4":33,"drwtNo5":37,"drwtNo2":23,"drwtNo3":29,"drwtNo1":10 -> 이건 로또의 각 번호를 의미하겠네요.

"bnusNo":16 -> 또한 이건 보너스넘버를 의미하는 것 같습니다.

 

 

 

실제로 맞는지 확인해보니 정확히 일치하죠?

 

 

이제 위 데이터를 받아와 python에서 다뤄보겠습니다.

 

 

 

pip install requests

먼저 url을 요청하여 그에 대한 반환값을 가져오기 위해 requests library를 이용할 것이므로 위 command를 terminal에 입력하여 requests library를 설치해줍시다.

 

 

 

 

import requests

url = 'https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=700'
req_result = requests.get(url)
print(req_result.json())

위처럼 코드를 입력하고 실행해보면

 

{'totSellamnt': 66846276000, 'returnValue': 'success', 'drwNoDate': '2016-04-30', 'firstWinamnt': 2082099188, 'drwtNo6': 44, 'drwtNo4': 29, 'firstPrzwnerCo': 8, 'drwtNo5': 30, 'bnusNo': 13, 'firstAccumamnt': 16656793504, 'drwNo': 700, 'drwtNo2': 23, 'drwtNo3': 28, 'drwtNo1': 11}

 

위와같은 결과가 표시됩니다.

아까 위에서 봤던 것과 동일하죠?

 

 

 

 

import requests

val_input = input('Input round number : ')

url = 'https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo={}'
url = url.format(val_input)
req_result = requests.get(url)
json_result = req_result.json()
print(json_result)
print(type(json_result))

val_return_success = json_result.get('returnValue', None)
val_drw_dt = json_result.get('drwNoDate', None)
val_no_1 = json_result.get('drwtNo1', None)
val_no_2 = json_result.get('drwtNo2', None)
val_no_3 = json_result.get('drwtNo3', None)
val_no_4 = json_result.get('drwtNo4', None)
val_no_5 = json_result.get('drwtNo5', None)
val_no_6 = json_result.get('drwtNo6', None)
val_bonus_no = json_result.get('bnusNo', None)


print('Return success flag :', val_return_success)
print('Draw lottery date :', val_drw_dt)
print('Number 1 :', val_no_1)
print('Number 2 :', val_no_2)
print('Number 3 :', val_no_3)
print('Number 4 :', val_no_4)
print('Number 5 :', val_no_5)
print('Number 6 :', val_no_6)
print('Bonus Number :', val_bonus_no)

결론적으로 위 코드를 작성해봤습니다.

 

내가 원하는 회차를 입력하면 그 회차에 대한 당첨 번호를 출력해줍니다.

 

 

 

 

 

728x90
반응형
Comments