download-large-files icon indicating copy to clipboard operation
download-large-files copied to clipboard

介绍如何流式下载大文件,并实现断点续传功能。根据顺序下载大文件的字节和乱序下载大文件的各个分段,分别进行了多线程或协程并发,还实现了多个大文件并发下载

Python 3 爬虫|第12章:并发下载大文件 支持断点续传

1. 顺序下载大文件的所有字节

  • 1-spider.py: 下载 单个 大文件,不支持断点续传
  • 2-spider.py: 下载 单个 大文件,支持断点续传
  • 3-spider.py: 下载 多个 大文件,每个线程下载一个文件
  • 4-spider.py: 下载 多个 大文件,每个协程下载一个文件

2. 乱序下载大文件的各个分段

将大文件按 multipart_chunksize 划分成多个分段,分段编号从 0 开始,除了最后一个分段以外,其它分段的大小都是 multipart_chunksize 个字节,类似于 迅雷下载

  • 5-spider.py: 验证 乱序 下载各分段是否最终 SHA256 一致
  • 6-spider.py: 下载 单个 大文件,每个线程下载一个分段
  • 7-spider.py: 下载 单个 大文件,每个协程下载一个分段
  • 8-spider.py: 下载 多个 大文件,每个文件开启一个线程,文件中的各个分段又用多线程去并发
  • 9-spider.py: 下载 多个 大文件,每个文件开启一个协程,文件中的各个分段又用协程去并发

3. 完整爬虫系列