我想编写一个简单的python脚本来完成特定的工作。我从网站上得到一些时间和链接信息。
times=
[
('17.04.2011', '06:41:44', 'abc.php?xxx'),
('17.04.2011', '07:21:31', 'abc.php?yyy'),
('17.04.2011', '07:33:04', 'abc.php?zzz'),
('17.04.2011', '07:41:23', 'abc.php?www'),]
在合适的时间点击这些链接的最佳方式是什么?我是否需要计算当前列表和列表中的时间间隔并暂停一段时间?
我真的陷入了这一点,并接受任何可能有用的想法。
答案 0 :(得分:9)
看一下Python的sched模块。
答案 1 :(得分:5)
您可以使用计划模块,它易于使用,并且将满足您的要求。
你可以尝试这样的事情。
import datetime, schedule, request
TIME = [('17.04.2011', '06:41:44', 'abc.php?xxx'),
('17.04.2011', '07:21:31', 'abc.php?yyy'),
('17.04.2011', '07:33:04', 'abc.php?zzz'),
('17.04.2011', '07:41:23', 'abc.php?www')]
def job():
global TIME
date = datetime.datetime.now().strftime("%d.%m.%Y %H:%M:%S")
for i in TIME:
runTime = i[0] + " " + i[1]
if i and date == str(runTime):
request.get(str(i[2]))
schedule.every(0.01).minutes.do(job)
while True:
schedule.run_pending()
time.sleep(1)
我使用请求模块和get方法来调用这些URL。你可以写任何适合你的方法。
答案 2 :(得分:3)
This可能有所帮助。它与Python中的类似cron的调度有关。是的,它基于睡眠。
答案 3 :(得分:1)
我终于制作并使用了它。
def sleep_till_future(f_minute):
"""
The function takes the current time, and calculates for how many seconds should sleep until a user provided minute in the future.
"""
import time,datetime
t = datetime.datetime.today()
future = datetime.datetime(t.year,t.month,t.day,t.hour,f_minute)
if future.minute <= t.minute:
print("ERROR! Enter a valid minute in the future.")
else:
print "Current time: " + str(t.hour)+":"+str(t.minute)
print "Sleep until : " + str(future.hour)+":"+str(future.minute)
seconds_till_future = (future-t).seconds
time.sleep( seconds_till_future )
print "I slept for "+str(seconds_till_future)+" seconds!"