import requests import time def get_jd_time(): url = "https://api.m.jd.com/" payload={} headers = { 'User-Agent': 'Apifox/1.0.0 (https://apifox.com)', 'Accept': '*/*', 'Host': 'api.m.jd.com', 'Connection': 'keep-alive' } response = requests.request("GET", url, headers=headers, data=payload) delay_time = int(response.elapsed.total_seconds()*1000) jd_timestamp = int(response.headers['X-API-Request-Id'][-13:]) print(jd_timestamp, time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(jd_timestamp/1000)), ', 响应时间:', int(response.elapsed.total_seconds()*1000), 'ms') return jd_timestamp, delay_time def jd_timer(target): target_timestamp = int(time.mktime(time.strptime(target, '%Y-%m-%d %H:%M:%S'))*1000) print(target_timestamp) jd_ts, delay = get_jd_time() while jd_ts < target_timestamp: delta = target_timestamp - jd_ts if delta > 3600*1000: time.sleep(3600) elif delta > 600*1000: time.sleep(600) elif delta > 120*1000: time.sleep(60) elif delta > 60*1000: time.sleep(30) elif delta > 30*1000: time.sleep(30) elif delta > 10*1000: time.sleep(1) elif delta > 3*1000: time.sleep(0.5) elif delta > 1*1000: time.sleep(0.2) else: if delta <= delay: break else: sleep_val = delta - delay - 5 time.sleep(sleep_val/1000) jd_ts, delay = get_jd_time() print('done') if __name__ == '__main__': target = '2025-01-21 12:17:00' jd_timer(target)