goodthings4me.tistory.com
로또 당첨번호를 확인하는 웹 페이지(동행복권)에 대한 파이썬 크롤링을 하는 김에 이전 포스팅(동행복권 로또 당첨번호 추출하는 파이썬 크롤링 코딩)에 이어서 이번에는 지정된 범위의 회차별 로또 당첨번호를 csv 파일로 저장하는 코드를 작성해보았다.
동행복권 로또 당첨번호를 CSV 파일로 저장하기
csv 모듈을 추가한 후 당첨번호를 추출하는 함수 일부를 수정하고, csv 객체에 추출된 당첨번호를 writerow() 메서드를 활용하면 저장이 된다.
[크롤링 소스 코드]
import requests
from bs4 import BeautifulSoup
import csv
def lottery_resust(fr, to):
try:
int(fr)
int(to)
except ValueError as e:
print(f'오류 발생: {e}')
return False
if fr == 0 or fr > to:
print('_from은 0이 아니거나 to보다 작아야 함')
return False
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
}
lottery_list = []
for n in range(fr, to + 1):
url = 'https://www.dhlottery.co.kr/gameResult.do?method=byWin'
payload = {'drwNo': n, 'dwrNoList': n}
req = requests.post(url, headers=headers, data=payload)
lotto_list = []
if req.status_code == 200:
soup = BeautifulSoup(req.text, 'html.parser')
win_res = soup.find('div', attrs=('class','win_result'))
# no = win_res.select_one('h4 > strong').text
# _day = win_res.find('p', class_='desc').text
# print(f'\n로또 {no} 당첨결과\n{_day}')
lot_num = [lot.text for lot in win_res.select('div > div.num.win > p > span.ball_645')]
lot_num.insert(0, n)
lot_bonus = win_res.select_one('div > div.num.bonus > p > span').text
lot_num.append(lot_bonus)
lottery_list.append(lot_num)
else:
print('추출 오류입니다!!')
print(lottery_list)
xls_name = f'lotto_{fr}_{to}.csv'
with open(xls_name, 'w', newline='') as f:
csv_obj = csv.writer(f)
header = ['회차', 'N1', 'N2', 'N3', 'N4', 'N5', 'N6', 'Bonus']
csv_obj.writerow(header)
for num in lottery_list:
csv_obj.writerow(num)
if __name__ == '__main__':
_from = 1007
to = 1008
lottery_resust(_from, to)
- 추출할 회차의 범위를 지정하기 위해 _from, to 인자를 활용했고,
- 만일 _from이 0이거나 to 보다 크면 False 리턴 처리를 했고 또한 _from이나 to가 숫자가 아닌 경우에는 오류(ValueError)가 발생하도록 하여 숫자만 처리되게 하였다.
- 당첨번호를 csv로 저장하기 위한 리스트를 만들고 회차와 당첨번호, 보너스 번호를 그 리스트에 담았고,
- open() 함수로 csv 파일을 생성한 후 리스트를 writerow() 메서드로 저장하였다.
- open() 함수에서 newline=''이 없으면 한 줄 개행이 되기 때문에 추가하였고,

- 만일 한글이 깨지는 증상이 발생할 경우 encoding='utf-8-sig'를 추가하면 해결된다.
[실행 결과]
(venv) D:\pythonDev>d:/pythonDev/venv/Scripts/python.exe d:/pythonDev/lottery_excel.py
[[1007, '8', '11', '16', '19', '21', '25', '40'], [1008, '9', '11', '30', '31', '41', '44', '33']]
(venv) D:\pythonDev>

▶ 관련 포스팅 더보기 https://goodthings4me.tistory.com/701
동행복권 로또 당첨번호 추출하는 파이썬 크롤링 코딩
동행복권 로또 당첨번호 추출하는 파이썬 크롤링 코드를 만들어보았다. 네이버 지식인에 올라온 내용인 [vscode 파이썬 코딩 도와주세요. 로또 몇몇회 치고 버튼누르면 그 회 로또번호 나오게끔 (
goodthings4me.tistory.com
블로그 인기글
Windows 10 탐색기 느려지는 증상과 해결하는 방법
잘 작동하던 Windows 10 탐색기가 갑자기 느려지는 증상이 발생했을 때 어떻게 조치를 하는지 구글에서 찾아보니 많은 해결책들이 있었으나 어떤 것이 정확한 해결책인지는 알 수가 없었다. 그래서 해결방법이라고 제시한 것들을 정리해 보았다. 윈도우 탐색기가 느려지는 증상 해결 방법 어느 순간부터 응용프로그램(VS Code 등)에서 폴더 열기나 파일 불러오기를 했을 때 검색 팝업창이 안 뜨거나 열리는 시간이 엄청 느려지는 증상과, 더불어서 탐색기도 실행이 많이 느려지는 증상이 있었다. 기존에 사용하던 VS Code에 openpyxl 설치 후 실행이 느려지는 증상이 발생하더니 윈도우10 탐색기도 느려져서 사용할 수가 없었다. 노트북에 OS(Windows10)를 설치한지 1년이 다 되어가긴 했지만, 1개월 전..
goodthings4me.tistory.com
엑셀 시트 분리 저장 - 엑셀 파일의 시트를 분리하여 저장하기
엑셀을 사용하다 보면 엑셀 시트를 분리해서 저장해야 할 때가 있다. 최근에도 이런 경우가 발생하여 구글링 후 엑셀 시트 분리 업무를 수행하고 내친김에 다른 사람들도 사용할 수 있도록 파이썬 tkinter로 프로그램으로 만들어 보았다. Excel Sheets 분리 저장하는 프로그램(with 파이썬 Tkinter) ※ 프로그램 다운로드(네이버 MYBOX에서 공유) : ExcelSeparateSheets.zip ▶ 프래그램을 실행하면 다음과 같이 초기 화면이 보인다. 찾아보기 : 엑셀 파일이 있는 폴더를 선택한다. (프로그램이 있는 최상위 디렉터리가 열린다) 실행하기 : 프로그램 실행 버튼 상태 변경 순서 : 실행전 → 실행 중 → Sheet "OOO" 분리 저장 중 → 실행 완료 실행 결과 확인 : 엑셀 파..
goodthings4me.tistory.com
[국세청] 현금영수증가맹점으로 가입바랍니다. 메시지 해결방법(개인사업자)
▶ 현금영수증 가맹점 가입 메시지를 받고... 온라인 쇼핑몰 사업을 시작하려고 사업자등록증을 발급받고 난 후 얼마 안 있어서 국세청으로부터 어느 시점까지 '현금영수증 가맹점'으로 가입하라는 문자메시지가 받았었다. 그 메시지 기한이 오늘 도래했는데, 인터넷에서 찾아보니 홈택스에서 현금영수증 발급 사업자 신청을 할 수가 있었다. [관련내용] 홈>국세정책/제도>전자(세금)계산서/현금영수증/신용카드>현금영수증∙신용카드>가맹점가입 ▶ 홈택스 사이트에서 신청하는 절차는 다음과 같다. 우선, 홈택스에 로그인을 해야 합니다. 세상이 좋아져서 공인인증서 없이도 손쉽게 간편인증 로그인이 가능하다. 여러 인증방법 중 카카오톡 인증이 가장 편리한 거 같다. 간편인증 로그인 후 상단 '조회/발급' 탭 클릭 후 '현금영수증>현금..
goodthings4me.tistory.com
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
파이썬 GUI 모듈 tkinter 연습(쿠팡 파트너스 상품 링크 관리 프로그램 만들기) (0) | 2022.04.07 |
---|---|
파이썬 truncate() 함수로 텍스트 파일 내용 삭제하기 (0) | 2022.04.07 |
동행복권 로또 당첨번호 추출하는 파이썬 크롤링 코딩 (0) | 2022.03.29 |
크롤링 도구 셀레니움(selenium) 업그레이드 (1) | 2022.03.25 |
네이버 지식인 명예의전당 질문 키워드 추출(with 파이썬 크롤링) (0) | 2022.03.23 |
댓글