본문 바로가기

개발/로또 ( Python )

로또 데이터 크롤링

DB 저장 하는 쿼리는 생략한 데이터 수집까지만 한 URL 데이터이다.

# Lotto URL
dhlottery = "https://dhlottery.co.kr/gameResult.do?method=byWin&drwNo="

# Lotto 가져올 FUNCTION
def getData(start=1, end=9999):
    #시작 lotto 데이터 부터 마지막 데이터까지
    for i in range(start, end):
    	# 로또 당첨 회차 URL 호출
        _dhlottery = dhlottery + str(i);
        res = requests.post(_dhlottery);
        if res.ok :
            bs = BeautifulSoup(res.text, 'html.parser')
            tag = bs.find('div', attrs={'class': 'nums'})
            datetag = bs.find('p', attrs={'class': 'desc'})
            
            # 데이터 호출 내용중 년월일 날짜 정규식으로 가져와서 변경
            # 2023년12월22일 -> 2023-12-22로 변경
            m = re.search('\d+년 \d+월 \d+일', datetag.text)
            indate = m.group()
            indate = indate.replace('년', '-')
            indate = indate.replace('월', '-')
            indate = indate.replace('일', '')
            indate = indate.replace(' ', '')

            numList = []
			# 로또 번호 가져오기
            for _number in tag.find_all('span'):
                numList.append(_number.text)
			
            # 정리 된 데이터 DB 저장하기 위해 셋팅
            param = {}
            param["lwWnum"] = str(i)
            param["lwDt"] = indate
            param["lwNumOne"] = numList[0]
            param["lwNumTwo"] = numList[1]
            param["lwNumThree"] = numList[2]
            param["lwNumFour"] = numList[3]
            param["lwNumFive"] = numList[4]
            param["lwNumSix"] = numList[5]
            param["lwNumSeven"] = numList[6]
            print(param)

 

param데 저장된 데이터를 원하는 위치에 저장 및 가공하면된다