1 、一般同步下载 示例代码: import requestsimport osdef downlaod(url, file_path): headers = { User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0 } r = requests.get(url=url, headers=headers) with open(file
1 、一般同步下载
示例代码:
2、 使用流式请求,requests.get方法的stream
默认情况下是stream的值为false,它会立即开始下载文件并存放到内存当中,倘若文件过大就会导致内存不足的情况,程序就会报错。
使用上面两个函数下载大文件可以防止占用过多的内存,因为每次只下载小部分数据。
示例代码: 由于request的请求是阻塞式的,所以要用aiohttp模块来发起请求。 示例代码:
4、 异步拆分下载文件 上面用的是一个协程下载一个文件,下面的方法是将文件分成几部分,每个部分用一个协程下载,最后再写入文件。 下面这个例子用的是流式写入,即把内容写入到磁盘里面。
5、注意 以上的示例都是介绍思路,程序并不健壮,健壮的程序需要加入错误捕获和错误处理。 |
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27