urllib.urlretrieve与urllib.request.urlretrieve的不同行为

时间:2016-03-11 11:24:46

标签: python

这里的问题是我的代码通常使用try except语句检查库中是否存在正确的库。但在最近,我注意到如果我打开:

fd = urllib.urlretrieve(url, os.path.join(out_directory, filename + file_type))

我收到了attribute错误,但我也收到了错误消息:

AttributeError: 'module' object has no attribute 'urlretrieve'
During handling of the above exception, another exception occurred:
urllib.error.HTTPError: HTTP Error 403: Forbidden

但是,如果我尝试使用以下代码更正属性错误:

fd = urllib.request.urlretrieve(url, os.path.join(out_directory, filename + file_type))

尽管网址相同,但我没有得到同样的403错误。然而,似乎url无法读取,因为我没有写入输出文件。所以看起来它是403问题,但没有错误信息。

所以要修复403,我怎样才能轻松地将标题添加到urlretrieve调用中?为什么错误处理不同?

0 个答案:

没有答案