1.安装第三方模块

pip install aiofiles
pip install aiohttp

2.示例

#! /usr/bin/env python3
import asyncio
import hashlib
import aiofiles
import aiohttp#携程异步下载图片示例headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
}
urls = ['https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1835006379,3971952494&fm=26&gp=0.jpg','https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2599675031,2559835120&fm=26&gp=0.jpg','https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3818314710,490032577&fm=26&gp=0.jpg','https://img.997pp.com/Tu/202104/f1e50330ee0da03856a1b29d9c55f4cf.jpg','https://img.997pp.com/Tu/202104/ae74ddd972ff70417dc496282b18a8b7.jpg','https://img.997pp.com/Tu/202104/9b216fd27962957f8e565a97ba3e8e8a.jpg'
]async  def down(url):#发送请求,得到二进制流保存图片数据async with aiohttp.ClientSession(headers=headers) as session:async with session.get(url) as response:fileName = hashlib.sha256(url.encode('utf-8')).hexdigest()+'.jpg'async with aiofiles.open(fileName, 'wb') as afp:await afp.write(await response.content.read())async  def main():task = []for url in urls:if url:task.append(asyncio.create_task(down(url)))await asyncio.wait(task)if __name__ == '__main__':try:asyncio.run(main())except BaseException as e:print(e)

在python 3.8.3 中运行,可以下载图片,但是抛出了一个异常

解决办法:
将asyncio 库中proactor_events.py 文件中的第116行的close注释掉即可,详细见下图

python 协程之异步下载图片相关推荐

  1. python协程详解_对Python协程之异步同步的区别详解

    一下代码通过协程.多线程.多进程的方式,运行代码展示异步与同步的区别. import gevent import threading import multiprocessing # 这里展示同步和异 ...

  2. [翻译] LASIImageView - 显示进度指示并异步下载图片

      LASIImageView – download image with progress indicator 翻译原网址:http://lukagabric.com/lasiimageview-d ...

  3. Kotlin学习——简单运用协程网络下载图片并更新到UI

    kotlin学习 协程Coroutines学习 简单小Demo:通过协程下载一张网络图片并显示出来 文章目录 kotlin学习 前言 一.如何开启一个协程? 二.如何在项目中使用协程 增加对 Kotl ...

  4. python爬虫,爬取下载图片

    python爬虫,爬取下载图片 分别引入以下三个包 from urllib.request import urlopen from bs4 import BeautifulSoup import re ...

  5. mac用python爬虫下载图片_使用Python爬虫实现自动下载图片

    python爬虫支持模块多.代码简洁.开发效率高 ,是我们进行网络爬虫可以选取的好工具.对于一个个的爬取下载,势必会消耗我们大量的时间,使用Python爬虫就可以解决这个问题,即可以实现自动下载.本文 ...

  6. CGD 异步下载图片

    CGD  异步下载图片 dispatch_queue_t   squeue =   dispatch_queue_create ( "abc" , NULL );       di ...

  7. Swift多线程:使用GCD实现异步下载图片

    GCD属于系统及的线程管理,功能很强大,比上两次咱们分享的Operation要强大.有很多老前辈们已经创造了非常非常多的资料介绍GCD,因为大家都是把GCD放在了多线程内容分享的最开始,所以导致好多好 ...

  8. Python 协程并发下载斗鱼美女图片

    仅用学习参考,转载请注明出处 爬虫技术第一步 作为爬虫技术第一步,就是可以使用爬取下载图片作为示例. 那么爬取图片,我们肯定去爬取美女图片作为第一步操作示例呀. 那么下面一个最重要的工作. 什么是最重 ...

  9. python 异步下载图片_python3抓取异步百度瀑布流动态图片(二)get、json下载代码讲解...

    制作解析网址的get 1 defgethtml(url,postdata):2 3 header = {'User-Agent':4 'Mozilla/5.0 (Windows NT 10.0; WO ...

最新文章

  1. oracle去掉blob的黑边,oracle Blob处理
  2. 在职计算机答辩没有通过,在职研究生论文答辩没通过可以重新申请吗?
  3. Flex入门搭建j2EE开发环境
  4. 将Spock 1.3测试迁移到Spock 2.0
  5. 基于SU的快速傅里叶变换(FFT)
  6. androidpn的学习研究(五)androidpn-client 常见BUG解决方法
  7. CSS3新特性(阴影、动画、渐变、变形、伪元素等) CSS3与页面布局学习总结——CSS3新特性(阴影、动画、渐变、变形、伪元素等)...
  8. 2014蓝桥杯:地宫取宝(DFS详解)
  9. [总结] Min-Max容斥学习笔记
  10. MTK MT6763 FAQ资料集锦
  11. 汇编程序编译连接过程
  12. Cousera - Deep Learning - 课程笔记 - Week 15
  13. MongoDB中balancer操作
  14. vim下载安装 配置方法(图)
  15. Halcon面阵相机采像
  16. linux 命令总结大全
  17. 泰山OFFICE技术讲座:字体的kerning是什么意思
  18. pcb布线时爬电距离的总结与算法
  19. Python Unit Test - 3 pydoc
  20. 【信息系统项目管理师】2018下半年信息系统项目管理师考试案例分析

热门文章

  1. linux安装7zip 64位下载,7-Zip首页、教程和下载-压缩软件-软件交流社区–完美下载...
  2. paddle学习笔记(1)--clear_grad()函数
  3. Swoft 定时任务
  4. 虹软人脸识别 - faceId及IR活体检测的介绍
  5. emoji 符号大全,给各位程序员增加一些奇怪的知识点
  6. C++ Qt中其他类调用窗口中的ui控件
  7. 16.(地图工具篇)PostgreSQL导出shape数据
  8. iOS安全攻防 防 防 防 防不住 . . . . . .
  9. IOS的Iphone短信导入安卓手机
  10. VS2008安装失败解决案例一则