Python Django-如何使我的代码在后端无限工作

Python Django-如何使我的代码在后端无限工作,python,django,web-crawler,Python,Django,Web Crawler,我正在尝试抓取powerball数据(每3分钟和8分钟,数据就会出来。这就像一个普通的彩票游戏)并显示到我的网站上。每3分钟和8分钟就会有新的数字出现。底部的代码每秒检查一次时间。例如,在下午2点23分,计时器将返回True,并以login开始。登录后,它开始从站点中刮取新数据。5分钟后,当时间变为28分钟时,它将再次开始刮削,因为它已登录。 我想要的是,在第一次启动程序时,它将清除之前的所有数据(只有今天的数据),并将数据添加到数据库中。每3分钟和8分钟,它就会从网站上获取新数据并将其添加到数

我正在尝试抓取powerball数据(每3分钟和8分钟,数据就会出来。这就像一个普通的彩票游戏)并显示到我的网站上。每3分钟和8分钟就会有新的数字出现。底部的代码每秒检查一次时间。例如,在下午2点23分,计时器将返回True,并以login开始。登录后,它开始从站点中刮取新数据。5分钟后,当时间变为28分钟时,它将再次开始刮削,因为它已登录。 我想要的是,在第一次启动程序时,它将清除之前的所有数据(只有今天的数据),并将数据添加到数据库中。每3分钟和8分钟,它就会从网站上获取新数据并将其添加到数据库中。当我访问网站时,我会观察数据库数据,每5分钟更新一次,而不是每次访问网站时都会爬行。有人能给我一个想法或例子吗?(我想在后台运行代码,不受干扰,每次都更新数据库)

'''
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)

'''