图片无法完全通过aiohttp下载

时间:2019-10-27 10:21:13

标签: python asynchronous async-await aiohttp web-scripting

我正在使用以下内容获取图像,但是下载不正确,只能看到图像的一小部分。文件大小小于256 kB。怎么了,我该如何解决?

async with aiohttp.ClientSession() as session:
    async with session.get(url, timeout = 20) as response:
        if response.status == 200:
            image = await response.content.read(262144) # 256 kiB
        else:
            print("Check your URL!")
            return

1 个答案:

答案 0 :(得分:2)

documentationread(n)读取最多 n个字节,但返回的字节可能更少。您必须循环调用它,直到它返回指示EOF的空字符串。

如果您不想实现该循环(仅在您拥有自己的某些缓冲或流式系统时才有用),只需调用read()而无需使用size参数即可一次性接收所有数据。 / p>