最新消息:20210917 已从crifan.com换到crifan.org

【已解决】Python的requests中如何下载二进制数据保存为图片文件

图片 crifan 1201浏览 0评论
折腾:
【未解决】爬取bp.pep.com.cn中的义务教育教科书资源
期间,先去搞清楚requests中如何下载二进制数据,保存为图片文件。
python requests binary image
python – How to download image using requests – Stack Overflow
Requests: 让 HTTP 服务人类 — Requests 2.18.1 文档
快速上手 — Requests 2.18.1 文档
“原始响应内容
在罕见的情况下,你可能想获取来自服务器的原始套接字响应,那么你可以访问 r.raw。 如果你确实想这么干,那请你确保在初始请求中设置了 stream=True。具体你可以这么做:
>>> r = requests.get(‘https://api.github.com/events’, stream=True)
>>> r.raw
<requests.packages.urllib3.response.HTTPResponse object at 0x101194810>
>>> r.raw.read(10)
‘\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03’”
快速上手 — Requests 2.18.1 文档
“二进制响应内容
你也能以字节的方式访问请求响应体,对于非文本请求:
>>> r.content
b'[{“repository”:{“open_issues”:0,”url”:”https://github.com/…
Requests 会自动为你解码 gzip 和 deflate 传输编码的响应数据。
例如,以请求返回的二进制数据创建一张图片,你可以使用如下代码:
>>> from PIL import Image
>>> from io import BytesIO
>>> i = Image.open(BytesIO(r.content))”
去试试r.content
resp.content是bytes的二进制数据:
然后就可以直接去write到二进制文件中了:
  resp = requests.get(curPictureUrl, headers=gHeaders)
  with open(saveFullPath, 'wb') as saveFp:
    saveFp.write(resp.content)
去看看下载保存出来的图片文件:
是正常的,没问题。
【总结】
requests下载图片url保存为二进制的图片文件:
import requests
resp = requests.get(pictureUrl)
with open(saveFullPath, 'wb') as saveFp:
  saveFp.write(resp.content)
即可。

转载请注明:在路上 » 【已解决】Python的requests中如何下载二进制数据保存为图片文件

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
90 queries in 0.179 seconds, using 23.38MB memory