python模块requests参数stream

微信扫一扫,分享到朋友圈

python模块requests参数stream
0

使用python requests模块下载大文件时,建议使用strea模式.

默认情况下是false,他会立即开始下载文件并存放到内存当中,倘若文件过大就会导致内存不足的情况.

当把get函数的stream参数设置成True时,它不会立即开始下载,当你使用iter_content或iter_lines遍历内容或访问内容属性时才开始下载。需要注意一点:文件没有下载之前,它也需要保持连接。

  • iter_content:一块一块的遍历要下载的内容
  • iter_lines:一行一行的遍历要下载的内容

使用上面两个函数下载大文件可以防止占用过多的内存,因为每次只下载小部分数据。

示例代码(下载某个视频):

# 下载视频
mp4url = 'https://vodcdn.idongde.com/provider/0/2021/10/26/171942wlr0t/sd/0d4b0238d1d08244946268e9bf4f84cd.mp4'

# 发起请求
dmp4 = requests.get(mp4url, stream=True)
print('视频下载请求状态:', dmp4.status_code)
with open('mp4.mp4', 'wb') as mp4f:
    # 使用iter_content遍历内容 1024 为每次读取字节长度 可自定义
    for i in dmp4.iter_content(1024):
        mp4f.write(i)

微信扫一扫,分享到朋友圈

python模块requests参数stream
0
下一篇

Windows10在当前目录打开cmd命令窗口

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
微信 微信
微信
返回顶部