我有一个令牌可以访问从 comtrade 下载大文件。原始网页是http://comtrade.un.org/但是我可以通过我的大学图书馆订阅获得高级访问权限。所以,如果我想使用高级功能,网站会自动将我重定向到这个页面,按下登录按钮后,URL 是https://ezproxy.nu.edu.kz:5588/data/dev/portal/。我正在尝试使用 API(使用请求)发送请求和下载文件。我收到了来自http://comtrade.un.org/的回复,但为了下载,我需要使用https://ezproxy.nu.edu.kz:5588/data/dev/portal/。当我尝试下载urllib.error.HTTPError: HTTP Error 401: Unauthorized出现此错误消息。我该如何处理这个问题?
px = 'px=HS&' #classification
freq = 'freq=A&' #annual
type = 'type=C&' #commodity
auth = 'https://comtrade.un.org/api/getUserInfo?token=ZF5TSW8giRQMFHuPmS5JwQLZ5FB%2BNO0NCcjxFQUJADrLzCRDCkG5F0ZPnZTYQWO3MPgj96gZNF7Z9iN8BwscUMYBbXuDVYVDvsTAVNzAJ6FNC2dnN7gtB1rt9qJShAO467zBegHTLwvmlRIBSpjjwg%3D%3D'
with open('reporterAreas.json') as json_file:
data = json.load(json_file)
ls = data['results']
list_year = [*range(2011, 2021,1)]
for years in list_year:
print(years)
ps = 'ps='+ str(years) + '&'
for item in ls:
r = item['id'] #report_country_id
report_country_txt = item['text']
if r == 'all':
req_url = 'r=' + r + '&' + px + ps + type + freq + token
request = url + req_url
response = requests.get(request)
if response.status_code == 200:
print("Response is OK!")
data = response.json()[0]
download_url = dwld_url + data['downloadUri']
print(download_url)
filename = str(years) + '_' + report_country_txt + '.zip'
urllib.request.urlretrieve(url, filename)

