목표
- 특정 사이트, 특정 글 스크랩
- 스크랩한 자료 DB에 저장
- 매주 추가되는 당첨번호 자동으로 스크랩하기
3. 매주 추가되는 당첨번호 자동으로 스크랩하기
1) sleep module
from time import sleep
def periodic_insert(self):
while True:
self.single_num()
sleep(self.sec)
self.page += 1
2) Code
from bs4 import BeautifulSoup
import requests
import pymysql
from time import sleep
db = pymysql.connect(host = 'localhost',
user = 'root',
password = '950912',
db = 'lotto')
msg = 'Insert completed'
class Lotto:
def __init__(self, page, max_pages, sec):
self.page = page
self.max_pages = max_pages
self.sec = sec
def periodic_insert(self):
while True:
self.single_num()
sleep(self.sec)
self.page += 1
def single_num(self):
url = 'https://dhlottery.co.kr/gameResult.do?method=byWin&drwNo=' + \
str(self.page)
req = requests.get(url)
html = req.text
bsObject = BeautifulSoup(html, "html.parser")
arr = list()
arr.append(self.page)
for numbers in bsObject.select('div > div > div > div > p > span'):
number = int(numbers.string)
arr.append(number)
return self.insert_num(arr)
def get_whole_num(self):
while self.page < self.max_pages:
url = 'https://dhlottery.co.kr/gameResult.do?method=byWin&drwNo=' + \
str(self.page)
req = requests.get(url)
html = req.text
bsObject = BeautifulSoup(html, "html.parser")
arr = list()
arr.append(self.page)
for numbers in bsObject.select('div > div > div > div > p > span'):
number = int(numbers.string)
arr.append(number)
self.insert_num(arr)
self.page += 1
def insert_num(self, arr):
curs = db.cursor()
sql = "INSERT INTO lotto_numbers(lotto, num_1, num_2, num_3, num_4, num_5, num_6, num_bonus) VALUES (%s ,%s, %s, %s, %s, %s, %s, %s)"
curs.execute(sql, arr)
db.commit()
return msg
db.close()