class Throttle:
#add delay between download for eacch delay
def __init__(self,delay):
#amount of delay between downloads
self.delay=delay
#timestamp of when a domain was last accessed
self.domains={}
def wait(self,url):
domain=urlparse.urlparse(url).netloc
last_accessed=self.domains.get(domain)
if self.delay > 0 and last_accessed is not None:
sleeps_secs=self.delay-(datetime.datetime.now()-last_accessed).seconds
if sleeps_secs > 0:
#domain has been recently accessed
#so we need to sleep
time.sleep(sleeps_secs)
#update last accessed time
self.domains[domain]=datetime.datetime.now()
有人能给我解释一下这是怎么工作的,为什么有用吗。。我从一本书上得到的,
还有,为什么不直接使用time.sleep(2)
而不是这个呢
目前没有回答
相关问题 更多 >
编程相关推荐