일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Redshift
- Google Excel
- string
- GIT
- 파이썬
- numpy
- PANDAS
- Java
- Apache
- Google Spreadsheet
- hive
- Excel
- Github
- Tkinter
- list
- PostgreSQL
- PySpark
- dataframe
- Kotlin
- django
- matplotlib
- google apps script
- SQL
- Python
- math
- Mac
- gas
- array
- c#
- Today
- Total
달나라 노트
Python에서 로또 당첨 번호 가져오기 본문
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)
결론적으로 위 코드를 작성해봤습니다.
내가 원하는 회차를 입력하면 그 회차에 대한 당첨 번호를 출력해줍니다.
'Python > Python ETC' 카테고리의 다른 글
Python : Web 페이지에서 원하는 태그의 정보 추출하기 (1) | 2021.01.23 |
---|---|
Python : Web page의 HTML 코드를 가져오기. (Web Crawling, 크롤링, 웹 크롤링) (0) | 2021.01.23 |
Python tistory api : 앱 등록 & Access token 발급 (0) | 2021.01.04 |
Python Hive : access hive and run query using python (0) | 2020.12.23 |
Python psycopg2 : access redshift and run query using python, python으로 redshift에서 쿼리 돌리기 (0) | 2020.12.23 |