Python Django-如何使我的代码在后端无限工作
我正在尝试抓取powerball数据(每3分钟和8分钟,数据就会出来。这就像一个普通的彩票游戏)并显示到我的网站上。每3分钟和8分钟就会有新的数字出现。底部的代码每秒检查一次时间。例如,在下午2点23分,计时器将返回True,并以login开始。登录后,它开始从站点中刮取新数据。5分钟后,当时间变为28分钟时,它将再次开始刮削,因为它已登录。 我想要的是,在第一次启动程序时,它将清除之前的所有数据(只有今天的数据),并将数据添加到数据库中。每3分钟和8分钟,它就会从网站上获取新数据并将其添加到数据库中。当我访问网站时,我会观察数据库数据,每5分钟更新一次,而不是每次访问网站时都会爬行。有人能给我一个想法或例子吗?(我想在后台运行代码,不受干扰,每次都更新数据库)Python Django-如何使我的代码在后端无限工作,python,django,web-crawler,Python,Django,Web Crawler,我正在尝试抓取powerball数据(每3分钟和8分钟,数据就会出来。这就像一个普通的彩票游戏)并显示到我的网站上。每3分钟和8分钟就会有新的数字出现。底部的代码每秒检查一次时间。例如,在下午2点23分,计时器将返回True,并以login开始。登录后,它开始从站点中刮取新数据。5分钟后,当时间变为28分钟时,它将再次开始刮削,因为它已登录。 我想要的是,在第一次启动程序时,它将清除之前的所有数据(只有今天的数据),并将数据添加到数据库中。每3分钟和8分钟,它就会从网站上获取新数据并将其添加到数
'''
from datetime import datetime
from selenium import webdriver
from bs4 import BeautifulSoup
import time
driver = webdriver.Chrome('C:\chrome\chromedriver')
LOGIN_INFORM = {
'//*[@id="userId"]': 'robin9634',
'//*[@id="article"]/div[2]/div/form/div/div[1]/fieldset/div[1]/input[2]': 'tlagusrb1234!'
}
RECENT_LOGIN = False
def GET_DATA(driver):
ico_set = []
td_set = []
driver.get('https://www.dhlottery.co.kr/gameInfo.do?method=powerWinNoList')
soup = BeautifulSoup(driver.page_source, 'html.parser')
ico_number = soup.find_all(class_ = 'ico_number_powerball')
td_number = soup.find_all('td')
for numbers in ico_number:
ico_set.append(numbers.text)
for i in td_number[4::9]:
td_set.append(str(i.text).strip(' \n'))
return datetime.now(), ico_set, td_set if ico_set != None or td_set != None else 0
def LOGIN(login_inform, define, driver):
if define == True:
return 0
driver.get('https://dhlottery.co.kr/user.do?method=login&returnUrl=')
for i , j in login_inform.items():
driver.find_element_by_xpath(i).send_keys(j)
driver.find_element_by_xpath('//*[@id="article"]/div[2]/div/form/div/div[1]/fieldset/div[1]/a').click()
def TIMER(m, s):
m = (lambda x: int(list(str(m))[1]) if m > 9 else int(m))(None)
return True if (m == 2 or m == 7) and s == 55 else False
while True:
if TIMER(int(datetime.now().minute), int(datetime.now().second)) == True and RECENT_LOGIN == False:
LOGIN(LOGIN_INFORM, RECENT_LOGIN, driver)
RECENT_LOGIN = True
return GET_DATA(driver)
elif TIMER(int(datetime.now().minute), int(datetime.now().second)) == True and RECENT_LOGIN== True:
time.sleep(1)
return GET_DATA(driver)
'''