下载小于实际大小的文件

时间:2017-05-11 03:35:59

标签: python-3.6

我正在尝试从xkcd.com下载所有漫画(png),这是我的代码来执行下载工作:

imageFile=open(os.path.join('XKCD',os.path.basename(comicLink)),'wb')
        for chunk in res.iter_content(100000):
            imageFile.write(chunk)
        imageFile.close()

下载文件为6388Bytes,当链接中的真实文件为27.6Kb时无法打开。

我已经在shell中逐行测试了我的代码,所以我很确定我得到了正确的链接和正确的文件。 我只是不明白为什么我的代码下载的png较小。 此外,我试图搜索为什么会发生这种情况但没有有用的信息。 感谢。

1 个答案:

答案 0 :(得分:0)

好的,因为你在这里使用请求的功能是让你下载给定网址的文件

def download_file(url):
    local_filename = url.split('/')[-1]
    # NOTE the stream=True parameter
    r = requests.get(url, stream=True)
    with open(local_filename, 'wb') as f:
        for chunk in r.iter_content(chunk_size=1024): 
            if chunk: # filter out keep-alive new chunks
                f.write(chunk)

    return local_filename

文档链接 - > http://docs.python-requests.org/en/latest/user/advanced/#body-content-workflow