2017-09-02 49 views
0

我试图从网站上下载文件,但它看起来像是检测到urllib,并且不允许它下载(我收到错误“urllib.error.HTTPError:HTTP Error 403:Forbidden”) 。如何向urllib.request.urlretrieve添加标题以保留我的变量?

我该如何解决这个问题?我在互联网上发现,我不得不添加一个标题,但答案不是我需要的方式(它使用了Request,我没有找到任何关于为urllib.request.urlretrieve()添加参数的任何参数头)

我使用Python 3.6

下面的代码:

import urllib.request 
filelink = 'https://randomwebsite.com/changelog.txt' 
filename = filelink.rsplit('/', 1) 
filename = str(filename[1]) 
urllib.request.urlretrieve(filelink, filename) 

我想包括头给我下载的文件的权限,但我需要保持像一条线最后一个,使用两个变量(一个用于文件的链接,另一个用于依赖于链接的名称)。

感谢您的帮助!

回答

0

检查以下链接: https://stackoverflow.com/a/7244263/5903276

要做到这一点是使用了urllib.request.urlopen函数返回一个代表HTTP响应一个类似文件的对象和最正确的方式将它复制到真正的文件使用shutil.copyfileobj。