python - Wie füge ich beim Durchlaufen einer Liste Zeit- oder Geschwindigkeitskontrolle hinzu?
天蓬老师
天蓬老师 2017-06-14 10:53:10
0
2
758
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

Es gibt eine solche Wochenendfunktion zum Anfordern einiger Inhalte, aber bei jeder Ausführung fehlen einige Inhalte. Es wird vermutet, dass es sich um ein Problem mit der Netzwerkgeschwindigkeit handelt. So begrenzen Sie die Häufigkeit der Durchquerung oder des Zugriffs alle paar Sekunden ?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

Antworte allen(2)
typecho

在每次遍历后, 加个睡眠时间咯

time.sleep(1) # 睡眠1秒

也就是在你的代码可以调整为:

for day in dayday:
    ...(访问处理代码)
    time.sleep(1)
    
学习ing

找到问题了,在遍历的时候对原列表进行remove操作会使列表长度发生变化,从而导致列表错位导致,最后出来的结果不是想要的结果

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage