HTTP Error 429时采用延时一段时间访问的方法解决
import requests
import os
import urllib
import time
def download_img(save_name):
status=429
global str
save_path ="C:/Users/Dell/Desktop/datasets/" #保存路径名
if not os.path.exists((save_path)):
os.makedirs(save_path)
##1.修改
f = open("SMU-MedicalVision-ECG-MoCo-Classfication-7518104/url.txt") # 替换自己要下载的路径集合文件:每行为一个URL地址
num = 0
all_line = f.readlines()
line = all_line[num]
while line:
#print(line)
url = str(line).replace("\n","")
url_split = url.split("=", -1)
url_split = url_split[-1]
print("正在下载 第 %d 个病人数据...." % num)
if(status!=429):
num += 1
line = all_line[num]
# line = line[0]
try:
# 获取当前页面的源码
urllib.request.urlretrieve(url, save_path+url_split)
status = 0
except Exception as e: # 响应错误
status = e.code
if status== 429:
sec = 600 #等待时间
print(status, "请求过快,服务器要求等待",sec , url )
time.sleep(sec) # If the rate limit is renewed in a minute, put 60 seconds, and so on.
print('下载完成!')
##3.##修改
download_img('save_name')