Til 1. 부자가 되기위한 크롤링
생활코딩도 다 듣고 왼손코딩도 다 듣고 뭘 해볼까 하다가 아! 뭘 만들어보자!
바로 로또 크롤링과 추천 번호 프로그램!
이미 많은 사람들이 만들어 놨고 각회차별 당첨번호는 각자가 독립변수이기에 사실 통계를 내는게 의미 없다고는 생각하지만!
그래도 혹시나 예를들어 공별로 프린팅 된 색상이나 숫자에 따라서 질량에 미세하게 영향을 끼쳐서! 실제로 확률이 더 높은 숫자가 있는것은
아닐까라는 지극히 즐거운 바보같은 생각에서 시작된 프로젝트!
첫 번째는 일단 크롤링을 해서 그간의 데이터를 추출해 보는 작업을 해보자
# requests
# pip install requests
# beautifulsoup
# pip install beautifulsoup4
import requests
from bs4 import BeautifulSoup
for index in range(1,5):
url = f"https://search.naver.com/search.naver?sm=tab_drt&where=nexearch&query={index}회로또"
req = requests.get(url)
if req.status_code != requests.codes.ok:
print("접속 실패")
continue
html = BeautifulSoup(req.text, "html.parser")
numbers = html.select("span.num")
#select_one() 원하는거 하나만 찾아주는것 select() 여러가지 그룹으로 찾아줌
#num 이라는 class를 찾아줘 / Class 라는 것을 알려주기 위해 앞에 . 찍음
numbers_list = [number.text for number in numbers]
lotto_numbers = [numbers_list[0:6]]
print(lotto_numbers)
이랬더니
[['14', '27', '30', '31', '40', '42']]
Process finished with exit code 0
....? 4회차까지를 주셔야죠 선생님...?
구글링에 for 반복문도 검색해보고 크롤링도 검색해보고 몇 일 찾다가 이제 포기를 해야하나 하는 시점에
'마지막 print 문은 들여쓰기하지 않았으니 for 루프에 속하지 않습니다'
유레카!
역시 기초 튼튼이가 최고시다
# requests
# pip install requests
# beautifulsoup
# pip install beautifulsoup4
import requests
from bs4 import BeautifulSoup
for index in range(1,5):
url = f"https://search.naver.com/search.naver?sm=tab_drt&where=nexearch&query={index}회로또"
req = requests.get(url)
if req.status_code != requests.codes.ok:
print("접속 실패")
continue
html = BeautifulSoup(req.text, "html.parser")
numbers = html.select("span.num")
numbers_list = [int(number.text) for number in numbers]
print(numbers_list)
[10, 23, 29, 33, 37, 40, 16]
[9, 13, 21, 25, 32, 42, 2]
[11, 16, 19, 21, 27, 31, 30]
[14, 27, 30, 31, 40, 42, 2]
Process finished with exit code 0
해결!! ^오^
이제 다음 미션은 953회차까지의 당첨번호 데이터를 추출해서 숫자별, 공의 색상(자릿수별) 당첨확률을 분석하고
이를 바탕으로 번호 6가지를 추천해주는 프로그램을 만들어보자!
재밌다!