Python 循环并检查刷新时间是否已到。。线程是解决这个问题的方法吗?
我有一个循环,一次又一次地浏览30个链接,大约每10个小时左右,所以我更喜欢清除保存某些已找到数据的其他列表。这里有一个抽象的例子。如果我有时间在一个单独的线程刷新Python 循环并检查刷新时间是否已到。。线程是解决这个问题的方法吗?,python,multithreading,web-scraping,Python,Multithreading,Web Scraping,我有一个循环,一次又一次地浏览30个链接,大约每10个小时左右,所以我更喜欢清除保存某些已找到数据的其他列表。这里有一个抽象的例子。如果我有时间在一个单独的线程刷新 def check_refresh(time_since_refresh): time_difference = round((datime.now() - time_since_refresh).total_seconds()/60/60) if time_difference == CLEAR_F
def check_refresh(time_since_refresh):
time_difference = round((datime.now() - time_since_refresh).total_seconds()/60/60)
if time_difference == CLEAR_FOUND:
time_since_refresh = datetime.now()
return True
return False
问题是,刮削的速度对我来说很重要,所以如果它通过每个循环检查是否是刷新的时间,我觉得它会减慢速度。刷新的时间应该是一个单独的线程,并且有一个布尔标志,刮板将读取每个循环?
还有没有更好的方法来实现自循环开始以来经过了多少时间,而无需使用
check\u refresh
?是的,线程是一个更好的主意。试试这个:
def check_refresh(time_since_refresh):
time_difference = round((datime.now() -
time_since_refresh).total_seconds()/60/60)
if time_difference == CLEAR_FOUND:
time_since_refresh = datetime.now()
return True
return False
t = threading.Thread(target=check_refresh)
while True:
scrape(url)
if t:
temporary_list.clear()
线程化之所以更好,是因为一个线程在执行另一个代码时执行某些操作,而不是暂停当前正在执行的代码。希望这有帮助
def check_refresh(time_since_refresh):
time_difference = round((datime.now() -
time_since_refresh).total_seconds()/60/60)
if time_difference == CLEAR_FOUND:
time_since_refresh = datetime.now()
return True
return False
t = threading.Thread(target=check_refresh)
while True:
scrape(url)
if t:
temporary_list.clear()