http 데이터 요청 및 받기

파이썬을 사용하면 http 데이터를 요청하고 결과를 받아 쉽게 처리가 가능하다. 지금 만들고 있는 '대박! 로또' 앱도 동행복권의 web api를 사용하여 당첨번호를 파일 또는 DB에 저장하였다. 파이썬에서 http 데이터를 처리하려면 requests 모듈을 사용하며, requests 모듈에 대한 자세한 설명은 아래 글을 참고하도록 한다.

 

Python :: 파이썬3 requests 모듈 살펴보기(설치, 사용방법 및 예제)

Python3 requests 모듈 API를 사용할 때, 주로 사용하곤 하는 requests 모듈에 대해 살펴보려 합니다. 사용하는 방법은 매우 쉽습니다. 사용을 할때는 보통 HTTP 메소드(method, 또는 함수)의 GET 과 POST를..

hongku.tistory.com

동행복권은 공식적으로 api를 제공하지 않지만, 로또 당첨번호를 알아오는 방법은 이미 널리 퍼저 있어, 아래 코드와 같이 간단히 로또 당첨번호를 알아낼 수 있다.

import requests

def request_lotto_draw_number(episode):
    numbers   = []
    lotto_url = 'https://dhlottery.co.kr/common.do'
    params    = {
        'method': 'getLottoNumber',
        'drwNo': episode
    }

    res = requests.get(lotto_url, params = params)
    if res.status_code != 200:
        raise ValueError('Request status code is {}'.format(res.status_code))

    for key, value in res.json().items():
        if 'drwtNo' in key:
            numbers.append(value)
    return numbers

for i in range(1, 940):
    lotto = request_lotto_draw_number(i)
    print('{:3d} : {}'.format(i, lotto))

requests 모듈을 사용하여 get 방식으로 동행복권 서버에 회차별 당청번호를 요청하고 결과를 json 포멧을 받아온다. 동행복권의 api를 간단히 사용하였지만, 웹에서 제공되는 대부분의 api는 get / post 방식으로 요청하고 결과를 json 포멧으로 받아서 처리하는 구조인듯 하다.

 

위 코드를 활용하여, 특정 조건을 제외하고 로또 추첨번호를 생성하는 간단한 앱을 만들었고, 이것을 만드는 과정을 블로그에 정리할 예정이다.