我不确定该怎么做。一种方法是:
import urllib.request;
urllib.request.urlretrieve('www.example.com/file.tar', 'file.tar')
另一种方法是:
import urllib.request;
#Set as appropriate
userAgent = ....;
req = urllib.request.Request('www.example.com/file.tar', headers={'User-Agent' : userAgent});
response = urllib.request.urlopen(req);
#Save the file
f = open('file.tar', 'wb');
f.write(response.read());
f.close()
我不确定该使用哪种方法。我将循环下载许多文件(带有模式文件名)。但是,我希望能够设置用户代理标头。这并不重要,但我愿意。
编辑:我忘了提及我更喜欢第一种方法,但我不知道如何使用 urlretrieve 设置用户代理标头。
我正在将最初的评论转移到答案......
您的第二个示例几乎做了它需要做的事情,即使用自定义标头创建请求对象,然后将结果读入本地文件。
urlretrieve
是一个更高级别的函数,因此它只执行文档所说的操作:将网络资源下载到本地文件并告诉您该文件在哪里。如果您不喜欢第二个示例的稍低级别的方法并且想要更高级别的功能,您可以考虑使用Requests library
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)