728x90
코드 수정중...
import requests
from bs4 import BeautifulSoup
from PyQt5.QtWidgets import QWidget, QLabel, QApplication, QHBoxLayout, QVBoxLayout
from PyQt5.QtCore import Qt
import sys
class PyLotto(QWidget):
def __init__(self):
super().__init__()
# UI초기화
self.initUI()
# 크롤링
l = self.crawlingLotto()
# UI 업데이트
self.update(l)
def initUI(self):
vbox = QVBoxLayout()
hbox_1 = QHBoxLayout()
hbox_2 = QHBoxLayout()
# 회차 레이블
self.noLabel = QLabel(self)
self.noLabel.setText('999회')
self.noLabel.setAlignment(Qt.AlignLeft)
hbox_1.addWidget(self.noLabel)
# 추첨일 레이블
self.dateLabel = QLabel(self)
self.dateLabel.setText('99년 99월 99일 추첨')
self.dateLabel.setAlignment(Qt.AlignRight)
hbox_1.addWidget(self.dateLabel)
# 당첨 번호 레이블
self.winLabel = []
for i in range(6):
wLabel = QLabel(self)
wLabel.setText('99')
wLabel.setAlignment(Qt.AlignCenter)
hbox_2.addWidget(wLabel)
self.winLabel.append(wLabel)
# 보너스 번호 레이블
self.bonusLabel = QLabel(self)
self.bonusLabel.setText(f'보너스 번호 99')
self.bonusLabel.setAlignment(Qt.AlignCenter)
# 레이아웃 설정
vbox.addLayout(hbox_1)
vbox.addLayout(hbox_2)
vbox.addWidget(self.bonusLabel)
self.setLayout(vbox)
self.setWindowTitle('PyLotto')
self.show()
def update(self, l):
self.noLabel.setText(l[7])
self.dateLabel.setText(l[8])
for i in range(6):
self.winLabel[i].setText(l[0 + i])
self.bonusLabel.setText(f'보너스 번호 {l[6]}')
def crawlingLotto(self):
# 로또 이번주 당첨 번호 사이트 주소
req = requests.get('https://www.dhlottery.co.kr/gameResult.do?method=byWin')
print(req.status_code)
html = req.text
soup = BeautifulSoup(html, 'html.parser')
# 회차 크롤링
self.no = soup.select('div.win_result > h4 > strong')
# 추첨일
self.date = soup.select('div.win_result > p')
# 당첨 번호
self.nums_win = soup.select('div.num.win > p > span')
# 보너스 번호
self.nums_bonus = soup.select('div.num.bonus > p > span')
# 당첨번호를 리스트로 정리
l = []
for t in self.nums_win:
l.append(t.text)
# 나머지 데이터를 추가
l += [self.nums_bonus[0].text, self.no[0].text, self.date[0].text]
# # 정리된 리스트 반환
return l
if __name__ == "__main__":
app = QApplication(sys.argv)
inst = PyLotto()
app.exec_()
반응형
'programming > python' 카테고리의 다른 글
tip - '64bit'? '32bit'? 비트 아키텍처 확인 방법 (0) | 2021.01.12 |
---|---|
series - PyLotto 만들기_2 - 당첨번호 1회 ~ 최신회 까지 가져오기_크롤링 (0) | 2021.01.06 |
series - PyLotto 만들기_1 - 이번주 당첨 번호 가져오기_크롤링 (0) | 2021.01.06 |
tip - python pip packages 패키지 설치 위치 (0) | 2020.12.27 |
error - VSCODE에서 PyQT 인식 문제 해결 (2) | 2020.12.27 |