我有以下功能从网页获取一些数据并存储在字典中。时间戳作为键,数据(列表)作为值。
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分钟自动运行一次。我正在尝试使用time.sleep和此函数:
def period_fun(it):
iterations = it
while iterations != 0:
getData(dic)
time.sleep(300)
iterations = iterations -1
然而,这个函数只运行一次,我最终只有字典中的一个项目。我用一个简单的打印(1)而不是函数尝试了它并且它可以工作(1次被打印几次),但是当我使用它实现它时它不起作用。
非常感谢有关功能的任何建议或我如何实现目标!
祝你好运, Mladen