Maison > Questions et réponses > le corps du texte
def dateRange(start, end, step=1, format="%Y-%m-%d"):
strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime
days = (strptime(end, format) - strptime(start, format)).days
return [strftime(strptime(start, format) + datetime.timedelta(i), format) for i in xrange(0, days, step)]
ef weekend():
try:
dayday = dateRange(st, ed)
for day in dayday:
d =day.replace('-','')
date = d
server_url = "http://www.easybots.cn/api/holiday.php?d="
vop_url_request = urllib2.Request(server_url + date)
vop_response = urllib2.urlopen(vop_url_request)
vop_data = json.loads(vop_response.read())
if vop_data[date] == '1' or vop_data[date] == '2':
dayday.remove(day)
return dayday
except:
dayday = dateRange(st, ed)
return dayday
Il existe une telle fonction de week-end pour demander du contenu, mais certains contenus seront manquants à chaque exécution. On soupçonne qu'il s'agit d'un problème avec la vitesse du réseau. Comment limiter la fréquence de traversée ou d'accès une fois en quelques secondes. ?
typecho2017-06-14 10:55:10
Après chaque itération, ajoutez un temps de sommeil
time.sleep(1) # 睡眠1秒
C'est-à-dire que votre code peut être ajusté pour :
for day in dayday:
...(访问处理代码)
time.sleep(1)
学习ing2017-06-14 10:55:10
J'ai trouvé le problème. L'opération de suppression sur la liste d'origine pendant le parcours modifiera la longueur de la liste, ce qui entraînera un mauvais alignement de la liste. Le résultat final n'est pas le résultat souhaité
.