技术文章 > Python技术 > Python基础 > 正文

python怎么一次性下载多个文件

爱喝马黛茶的安东尼

Python 批量文件下载

所谓批量下载,当然不是一个一个文件的下载了,比如说我们要下载百度图片,如果一个一个下载会出现两种负面情况:

·如果某个请求堵塞,整个队列都会被堵塞;

·如果是小文件,单线程下载太慢。

我们的解决方案是使用异步策略。如果你会用scrapy框架,那就轻松许多了,因为它结合了twisted异步驱动架构,根本不需要你自己写异步。实现异步下载的方法:

我们需要使用到两个包,一个是asyncio、一个是aiohttp。asyncio是Python3的原装库,但是aiohttp则需要各位使用cmd/Terminal打开,输入以下命令安装:

pip install aiohttp

注意:asyncio是单进程并发库,不是多线程,也不是多进程,单纯是在一个进程里面异步(切来切去运行),切换的地方用await标记,能够切换的函数用async标记。比如下载异步批量下载两个图片的代码如下:

36ec6e553bca25049aec7a7a33b9940.png

Python异步批量下载

注意:img = await session.get(url)

这时候,在你请求第一个图片获得数据的时候,它会切换请求第二个图片或其他图片,等第一个图片获得所有数据后再切换回来。从而实现多线程批量下载的功能,速度超快,下载超清大图用这个方法可以一秒一张。

python学习网,大量的免费python视频教程,欢迎在线学习!

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 初识Python-Python的历史与优缺点
 Python中文分词工具
 Python中文分词的原理你知道吗?
 什么是网络协议
 python中的去除重复项的操作
相关视频章节
 使用Pycharm里的Database对数据库进行可视化操作
 Django ORM常用操作介绍(新手必看)
 Pycharm新手教程,只需要看这篇就够了
 使用pycharm创建自己的第一个django项目
 Django2.0入门教程
视频教程分类