1
웹 페이지에서 일부 데이터를 가져 와서 사전에 저장하는 다음 함수가 있습니다. 시간 소인을 키로, 데이터 (목록)를 값으로 사용합니다.주기적으로 파이썬에서 함수를 실행하십시오.
def getData(d):
page = requests.get('http://www.transportburgas.bg/bg/%D0%B5%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE-%D1%82%D0%B0%D0%B1%D0%BB%D0%BE')
soup = BeautifulSoup(page.content, 'html.parser')
table = soup.find_all("table", class_="table table-striped table-hover")
rows = table[0].find_all('tr')
table_head = table[0].find_all('th')
header = []
tr_l = []
rows = []
for tr in table[0].find_all('tr'):
value = tr.get_text()
rows.append(value)
time_stamp = rows[1].split("\n")[1]
data = []
for i in rows[1:]:
a = i.split("\n")
if time.strptime(a[1], '%d/%m/%Y %H:%M:%S')[:4] == time.localtime()[:4]:
data.append(int(a[3]))
else:
data.append(np.nan)
d[time_stamp] = data
웹 페이지의 데이터는 5 분마다 업데이트됩니다. 5 분마다 자동으로 기능을 실행하고 싶습니다.
def period_fun(it):
iterations = it
while iterations != 0:
getData(dic)
time.sleep(300)
iterations = iterations -1
그러나,이 기능은 한 번 실행하고 나는 사전에 하나의 항목으로 끝날 : 나는 time.sleep이 기능을 수행하려합니다. 나는 간단한 print (1) 대신에 함수를 시도해 보았다. (1은 여러 번 인쇄된다.)하지만 함수로 구현하면 작동하지 않는다.
기능에 대한 제안이나 목표 달성 방법을 알려 주시면 감사하겠습니다.
안부, 믈라덴
당신이 크론를 사용하여 시도 해 봤나 :이 구문처럼 크론를 사용하지 않지만
일정 착해 보이는? –
주기적으로 함수를 호출하는 데 [threading.Timer'] (https://docs.python.org/3/library/threading.html#timer-objects) 객체를 사용할 수 있습니다. –