카테고리 없음

Til 1. 부자가 되기위한 크롤링

Jake2 2021. 3. 6. 22:30

생활코딩도 다 듣고 왼손코딩도 다 듣고 뭘 해볼까 하다가 아! 뭘 만들어보자! 

바로 로또 크롤링과 추천 번호 프로그램! 

이미 많은 사람들이 만들어 놨고 각회차별 당첨번호는 각자가 독립변수이기에 사실 통계를 내는게 의미 없다고는 생각하지만! 

그래도 혹시나 예를들어 공별로 프린팅 된 색상이나 숫자에 따라서 질량에 미세하게 영향을 끼쳐서! 실제로 확률이 더 높은 숫자가 있는것은

아닐까라는 지극히 즐거운 바보같은 생각에서 시작된 프로젝트!

 

첫 번째는 일단 크롤링을 해서 그간의 데이터를 추출해 보는 작업을 해보자

# 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가지를 추천해주는 프로그램을 만들어보자!

 

재밌다!