python批量下载文件教程_超简单超详细python小文件、大文件、批量下载教程
按照不同的情况,python下载文件可以分为三种:
小文件下载
大文件下载
批量下载
python 小文件下载
流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放的地方。
Python小文件下载流程
以下载上述流程图文件为例子:
Python文件下载
运行完毕后,它将会被保存到当前文件夹的new文件夹里。
python 大文件下载
我们在小文件下载的时候,是将文件内容暂存到变量里,大家想想,下载大文件的时候还这样做会有什么问题?很简单,如果你的内存只有8G,结果要下载文件却有10G那么大,那就肯定无法下载成功了。而且本机软件运行占的内存也比较大,如果你的内存只有8G,实际上剩余可用的内存可能低于2G-4G. 这种情况下怎么下载大文件呢?
流式分块下载
原理:一块一块地将内存写入到文件中,以避免内存占用过大。
Python大文件下载流程
当设置了request.get(stream=True)的时候,就是启动流模式下载,典型特征:在r变量的content被调用的时候才会启动下载。代码如下:
python大文件下载
Python 批量文件下载
所谓批量下载,当然不是一个一个文件的下载了,比如说我们要下载百度图片,如果一个一个下载会出现两种负面情况:
如果某个请求堵塞,整个队列都会被堵塞
如果是小文件,单线程下载太慢
我们的解决方案是使用异步策略。如果你会用scrapy框架,那就轻松许多了,因为它结合了twisted异步驱动架构,根本不需要你自己写异步。不过我们python实用宝典讲的可是教程,还是跟大家说一下怎么实现异步下载:
我们需要使用到两个包,一个是asyncio、一个是aiohttp. asyncio是Python3的原装库,但是aiohttp则需要各位使用cmd/Terminal打开,输入以下命令安装:
pip install aiohttp
注意asyncio是单进程并发库,不是多线程,也不是多进程,单纯是在一个进程里面异步(切来切去运行),切换的地方用await标记,能够切换的函数用async标记。比如下载异步批量下载两个图片的代码如下:
Python异步批量下载
注意:img = await session.get(url)
这时候,在你请求第一个图片获得数据的时候,它会切换请求第二个图片或其他图片,等第一个图片获得所有数据后再切换回来。从而实现多线程批量下载的功能,速度超快,下载超清大图用这个方法可以一秒一张。
python批量下载文件教程_超简单超详细python小文件、大文件、批量下载教程相关推荐
- python批量下载网页文件-超简单超详细python小文件、大文件、批量下载教程
按照不同的情况,python下载文件可以分为三种: 小文件下载 大文件下载 批量下载 python 小文件下载 流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放 ...
- python云盘搭建教程_超简单!基于Python搭建个人“云盘”,目前最好用的个人云盘...
超简单!基于Python搭建个人"云盘",目前最好用的个人云盘 1. 简介 当我们想要从本地向云服务器上传文件时,比较常用的有pscp等工具,但避免不了每次上传都要写若干重复的代码 ...
- 用python建云盘_实用的Python(3)超简单!基于Python搭建个人“云盘”
1 简介 当我们想要从本地向云服务器上传文件时,比较常用的有pscp等工具,但避免不了每次上传都要写若干重复的代码,而笔者最近发现的一个基于Python的工具updog,可以帮助我们在服务器上搭建类似 ...
- video downloadhelper 无时间限制_Python实现超简单【抖音】无水印视频批量下载
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:python乱炖 转载: Python实现超简单[抖音]无水印视频批 ...
- python与excel表格-超简单:用Python让Excel飞起来
超简单:用Python让Excel飞起来 作者:王秀文;郭明鑫;王宇韬 编著 出版日期:2020年07月 文件大小:20.30M 支持设备: ¥45.00在线试读 适用客户端: 言商书局 iPad/i ...
- python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析
Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...
- Kali Linux 2021.2在VMware和VirtualBox安装教程 超简单 步骤详细讲解
Kali Linux 2021.2在VMware和VirtualBox安装教程 超简单 步骤详细讲解 一. 资源下载及工作站安装 二. 使用VMware平台安装 三. 使用VirtualBox平台安装 ...
- 小说下载阅读器_初始简单版
小说下载阅读器_初始简单版 相信园子里面的很多人和我一样喜欢阅读小说,下面是这几年用的比较多一点的阅读器,功能相对完整. Windows本地程序/手机 1.http://www.mybook66.co ...
- python超简单超基础的免费小说爬虫
python超简单超基础的免费小说爬虫 需要准备的环境 选取网页 思路 代码 总结 需要准备的环境 1.python 3.0及以上皆可 2.requests库,os,re 选取网页 找一个免费的小说网 ...
最新文章
- vue-concise-slider vue滑动组件
- C++之queue模板类
- java 如何知道对象是否被修改过_Java 并发编程:AQS 的原子性如何保证
- 贵大计算机学院陈力,CCF贵州大学学生分会完成换届
- C++多线程编程(2) 条件变量与原子操作
- 小明放学201812-2
- cfa考试用计算机,cfa考试一定要用专用计算器么
- 服务器上系统怎么启动iis,IIS服务器如何重新启动
- 关于jmeter客户端实现中HttpClient4与Java的区别
- 2022-2028年中国自行车行业市场全景评估及投资前景规划报告
- 一亿融资在一家芯片初创公司可以烧多久?
- 计算机开机主机不停地重启,电脑开机不断重启,可能是两个原因
- omap3530 linux串口驱动,嵌入式系统 linux 环境搭建步骤omap3530
- 在电脑桌面上添加便签的方法步骤解析
- oracle blob 照片,要在oracle里面存入图片 用 blob类型
- java定义文章的难度系数
- 自定义AVA数据集,多人视频的时空动作数据集标注方法
- 阿里达摩院XR实验室2022校招内推
- 基于FPGA的HDB3编译码verilog实现,结合MATLAB进行辅助验证
- Python绘制类激活图曲线(热力曲线)
热门文章
- Goreleaser + TraivsCI 发布 gopo 项目
- era翻译_英语单词era是什么意思,英文单词查询era,在线单词era翻译
- go语言怎么 控制一个变量输入的范围_四周入门Go语言(week01)
- 用C++实现的高性能WEB服务器
- mcafee怎么添加信任区_如何免费将McAfee SECURE Seal添加到您的WordPress网站
- 中子-伽马探测器响应模拟计算软件
- 如何分析个股基本面_如何从基本面判断个股?
- 全志D1开发板 XR829蓝牙 Can‘t get device info: No such device 自我分析及解决方案
- (牛客网)华为机试(二)
- 对话高新兴总裁侯玉清:安防企业的翻身之战