栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-如何使用请求下载图像

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-如何使用请求下载图像

你可以使用

response.rawfile
对象,也可以遍历响应。

response.raw
默认情况下,使用类似文件的对象不会解码压缩的响应(使用GZIP或deflate)。你可以通过将
depre_content
属性设置为True(requests将其设置False为控制自身解码)来强制为你解压缩。然后,你可以使用
shutil.copyfileobj()Python
将数据流式传输到文件对象:

import requestsimport shutilr = requests.get(settings.STATICMAP_URL.format(**data), stream=True)if r.status_pre == 200:    with open(path, 'wb') as f:        r.raw.depre_content = True        shutil.copyfileobj(r.raw, f)    

要遍历响应,请使用循环;这样迭代可确保在此阶段解压缩数据:

r = requests.get(settings.STATICMAP_URL.format(**data), stream=True)if r.status_pre == 200:    with open(path, 'wb') as f:        for chunk in r: f.write(chunk)

这将以128字节的块读取数据;如果你觉得其他块大小更好,请使用具有自定义块大小的

Response.iter_content()
方法:

r = requests.get(settings.STATICMAP_URL.format(**data), stream=True)if r.status_pre == 200:    with open(path, 'wb') as f:        for chunk in r.iter_content(1024): f.write(chunk)

请注意,你需要以二进制模式打开目标文件,以确保python不会尝试为你翻译换行符。我们还设置

stream=True
requests
不先将整个图像下载到内存中。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号