如何添加标题到urllib.request.urlretrieve保存我的变量?

时间:2017-09-02 13:28:54

标签: python python-3.x

我试图从网站下载文件,但看起来它正在检测urllib并且不允许它下载(我收到错误" urllib.error .HTTPError:HTTP错误403:禁止")。

我该如何解决这个问题?我在互联网上发现我必须添加一个标题,但答案并没有按照我需要的方式进行(它使用了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)

我想要包含一个标题,以便我获得下载文件的权限,但我需要保留一行,就像最后一行一样,使用两个变量(一个用于文件的链接,一个用于依赖于的名称)链接)。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

执行此操作的最正确方法是使用urllib.request.urlopen函数返回表示HTTP响应的类文件对象,并使用shutil.copyfileobj将其复制到实际文件中。