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. 福特数据总监:汽车业的大数据框架如何构建?
  2. 不做在线电商,或许才是永辉超市的未来
  3. mongodb与java结合_MongoDB初探系列之四:MongoDB与Java共舞
  4. android长按加入购物车,《Android APP可能有的东西》之UI篇:加入购物车动画
  5. php备份mysql页面_如何用PHP的页面备份、恢复Mysql数据库_php
  6. leetcode 1185 python
  7. QA专题阅读小组 | 每周一起读 #09
  8. PCL——4.深度图像
  9. C语身教程第十章:文件(8)
  10. Jasmine入门(上)
  11. Salty Fish(区间和)
  12. 【优化求解】基于matalb遗传算法求解岛屿物资补给优化问题【含Matlab源码 172期】
  13. 游戏植入广告获取收益
  14. Windows2012 系统从MBR转GPT免重装的经验
  15. java log 乱码_Java日志文件乱码
  16. 《树莓派Python编程入门与实战》——2.3 使用Raspbian图形用户界面
  17. C源码:通过IP地址查找主机名 findip.c
  18. 关于 __dirname和__filename介绍以及使用场景
  19. python怎么打开图片_新手教学——python怎么打开图片
  20. elasticsearch ingest-attachment 对于 word、pdf等文件内容的索引

热门文章

  1. 闪讯路由器linux系统,Linux操作系统下连接闪讯的方法(支持有线与无线)
  2. 2014最新的淘宝客网站SEO操作方法
  3. 虚拟分布式交换机与虚拟标准交换机(二)
  4. swoft php怎么样,swoft 事件
  5. Hetero-ReID 综述
  6. SM5308同步开关充放电移动电源/充电宝芯片IC
  7. 活体识别3:论文笔记之《FACE ANTI-SPOOFING BASED ON COLOR TEXTURE ANALYSIS》
  8. 学平面设计能做什么?平面设计都有哪些内容
  9. Linux、Mac时间戳转换小工具
  10. Mastering Microsoft Teams 免积分下载