目录[-]

requests文件下载专项

我们都知道使用urllib去下载一个文件又或者一个图片,是一个极其繁琐的问题,当然我们可以使用更高的API封装,requests模块,使用content()方法,我们可以快速获取文件的字节流数据。但是我们对于大文件,我们不能做到一次请求就能获取所有的数据,那么该如何处理这样的问题呢?

requests获取文件内容的几个方法

  • response.text() 获取文本信息
  • response.content() 获取页面二进制数据
  • response.iter_content() 获取我们所需数据,并安装块级大小来获取
  • response.iter_lines() 获取我们所需的数据,按照一行一行的格式获取

*注意:使用后边的两个方法,我们需要在get的时候开启一个option,设置stream参数为True,这样的话,我们在使用这两个方法进行遍历内容,或者是内容属性的时候开始下载。当然文件没下载的时候我们也需要保持连接。


import requests
response = requests.get(url,stream=True)
f = open("file_name.txt","wb+")
for con in response.iter_content(chunk_size=512):
    if con:
        f.write(con)

关于这篇文章涉及一块多进程的问题,所以需要搞一下多进程和多线程的问题,后边接着写。