http://conansjh20.pythonanywhere.com/lottopage/

 

로또 당첨번호 확인

로또 당첨 번호 확인

conansjh20.pythonanywhere.com

(실제 홈페이지에 적용한 예 입니다.)

 

1. 로또 공홈에서 금주 당첨번호를 가져오기

   - requests, BeautifulSoup, re 모듈 이용

 

2. 당첨번호 6개 리스트화 시킴 + 보너스 번호

   - for 구문을 통해 리스트로 만들고, 추출한 각 숫자는 '문자'에서 '정수'로 전환

 

3. 1등~5등 확인

   - input 을 이용하여 직접 내 번호를 입력

   - if else 이용

 

포인트

- BeautifulSoup의 find_all은 .text 가 안된다.

- find도 .text를 (처음) 하나만 인식하기 때문에 for 구문을 이용하여 .append로 계속 추가하여 문자열 생성.

- 특정 문자열을 '포함하는' 문자열을 찾을때 re.compile을 이용

 

연습을 실전처럼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import requests
from bs4 import BeautifulSoup
import re
import numpy as np
 
l1 = requests.get("https://www.dhlottery.co.kr/common.do?method=main"#requests를 이용해서 인터넷 홈페이지를 불러온다.
l2 = l1.content #l2는 l1의 내용으로 정의한다.
l3 = BeautifulSoup(l2, "html.parser"#BeautifulSoup를 이용해서 html을 분석한다."html.parser"
cl = re.compile('drwtNo.*'#홈페이지에 특정 문자열을 포함하는 것을 정의하기 위하여 re 이용
wn = [] #for 구문 시작 전에 빈 리스트로 정의해야한다.
for l4 in l3.find_all("span",{"id": cl}): #반복문을 통하여 특정 태그의 특정 id를 포함하는 태그열을 반복한다.
    wn.append(l4.get_text()) #리스트화
#print(wn)
#print("당첨번호 : " + l4.get_text()) #태그 안의 문자만 출력한다.
l5 = l3.find("span",{"id":"bnusNo"}).text #보너스 번호의 경우 별도로 떨어뜨린다.
bn = int(l5)
 
#print(bn) #보너스 번호 출력
# print("당첨번호는 %s 입니다." % (wn))
# print("보너스번호는 %s 입니다." % (bn))
 
wn = list(map(int, wn))
 
#print(l4)
#print(html) #모든 html의 태그를 보여준다.
#print(l2)
 
MyNum = [int(input("첫번째 번호 : ")), int(input("두번째 번호 : ")), int(input("세번째 번호 : ")), int(input("네번째 번호 : ")), int(input("다섯번째 번호 : ")), int(input("여섯번째 번호 : "))] #내 번호 입력
 
print ("당첨번호 : ",wn)
print ("보너스번호 : ",bn)
print ("내 번호 : ",MyNum)
 
= 0
= 0
for i in wn:
    if i in MyNum: #몇개 맞았나 확인
        k = k + 1
 
#print (k,"개 맞추셨습니다.")
 
if k == 5:
    if bn in MyNum:
        print ("2등")
    else:
        print ("3등")
elif k == 6:
    print ("1등")
elif k == 4:
    print ("4등")
elif k == 3:
    print ("5등")
else:
    print ("꽝")
 
cs

+ Recent posts