Python异步 asyncio 异步文件下载
图片测试
异步 50
测试下载100个图片
耗时:1.95628 s
代码如下
代码如下
import asyncio
import aiohttp
import time
import randomasync def fetch(session,url):async with session.get(url, verify_ssl=False) as response:with open('pdf/' + str(random.randint(1,9999)) + '.jpg','ab') as f:while True:chunk = await response.content.read(1024)if not chunk:breakf.write(chunk)async def main(urlList):async with aiohttp.ClientSession() as session:task = [ asyncio.create_task( fetch(session,url)) for url in urlList ]done,pending = await asyncio.wait(task)if __name__ == '__main__':# 设置异步任务数numbers_of_async = 50lastTime = time.time()urlList = ['图片下载网址' for i in range(100)]numbers_of_times = int(len(urlList)/numbers_of_async) if not len(urlList)%numbers_of_async else int(len(urlList)/numbers_of_async) + 1for number in range(numbers_of_times):asyncio.run(main(urlList[number*numbers_of_async:number*numbers_of_async+numbers_of_async]))print("耗时 %.5f s"%(time.time() - lastTime))
PDF测试
异步 50
测试下载 100 个pdf
耗时:44.07051 s
代码如下
import asyncio
import aiohttp
import time
import randomasync def fetch(session,url):async with session.get(url, verify_ssl=False) as response:with open('pdf/' + str(random.randint(1,9999)) + '.pdf','ab') as f:while True:chunk = await response.content.read(1024)if not chunk:breakf.write(chunk)async def main(urlList):async with aiohttp.ClientSession() as session:task = [ asyncio.create_task( fetch(session,url)) for url in urlList ]done,pending = await asyncio.wait(task)if __name__ == '__main__':# 设置异步任务数numbers_of_async = 100lastTime = time.time()urlList = ['pdf下载网址' for i in range(100)]numbers_of_times = int(len(urlList)/numbers_of_async) if not len(urlList)%numbers_of_async else int(len(urlList)/numbers_of_async) + 1for number in range(numbers_of_times):asyncio.run(main(urlList[number*numbers_of_async:number*numbers_of_async+numbers_of_async]))print("耗时 %.5f s"%(time.time() - lastTime))
Python异步 asyncio 异步文件下载相关推荐
- python asyncio_Python 的异步 IO:Asyncio 简介
原标题:Python 的异步 IO:Asyncio 简介 Python 的 asyncio 类似于 C++ 的 Boost.Asio. 异步 IO,就是你发起一个 IO 操作,不用等它结束,可以继续做 ...
- python asyncio 异步编程-协程 2
asyncio 异步编程 官方文档: 中文版:https://docs.python.org/zh-cn/3.8/library/asyncio.html 英文本:https://docs.pytho ...
- python爬虫 asyncio aiohttp aiofiles 单线程多任务异步协程爬取图片
python爬虫 asyncio aiohttp aiofiles 多任务异步协程爬取图片 main.py """=== coding: UTF8 ==="&q ...
- python异步asy_python异步编程asyncio
前言 python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病.然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率,弥补了python性能方面的短板. asy ...
- python3 异步 asyncio aiohttp aiohttp-requests aiofiles 使用
asyncio asyncio 是用来编写 并发 代码的库,使用 async/await 语法. asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库, ...
- python processpoolexector 释放内存_一起看看python 中日志异步发送到远程服务器
在python中使用日志最常用的方式就是在控制台和文件中输出日志了,logging模块也很好的提供的相应的类,使用起来也非常方便,但是有时我们可能会有一些需求,如还需要将日志发送到远端,或者直接写入数 ...
- b站弹幕姬python_基于asyncio异步协程框架实现收集B站直播弹幕详细介绍
本文给大家分享的是基于asyncio 异步协程框架实现收集B站直播弹幕收集系统的简单设计,并附上源码,有需要的小伙伴可以参考下 "> 前言 虽然标题是全站,但目前只做了等级 top 1 ...
- Python3标准库:asyncio异步I/O、事件循环和并发工具
1. asyncio异步I/O.事件循环和并发工具 asyncio模块提供了使用协程构建并发应用的工具.threading模块通过应用线程实现并发,multiprocessing使用系统进程实现并发, ...
- python 异步io_python异步IO编程(一)
python异步IO编程(一) 基础概念 异步IO (async IO):一种由多种语言实现的与语言无关的范例(或模型). asyncio:Python 3.4版本引入的标准库,直接内置了对异步IO的 ...
最新文章
- android获取年月日时分秒毫秒,Android获取两个日期其间间隔的天数
- 代码管理和检查平台汇总
- Flash Builder 使用
- 取代Cookie失败,Google上线FLoC反遭“围攻”!
- mysql数据库是以表为单位存储的,创建一个以数据库名称为参数的MySQL存储过程,以列出具有特定数据库中详细信息的表。...
- Scikit-learn:最近邻搜索sklearn.neighbors
- IntelliJ IDEA 的项目配置和Web部署,终于搞懂了!
- PS抠图后有毛边怎么处理?
- Python一行流:列举所有k-mer组合(最简单写法)
- Java项目中利用钉钉机器人Webhook向钉钉群推送告警通知
- vue html 格式化,解决在写Vue时,格式化代码 属性自动换行的问题
- android实现截图功能
- 手机通过QQ发送图片到电脑端,电脑接收不到且显示图裂
- 白盒测试方法之逻辑覆盖
- SAP FICO 应收应付重分类的坑 SAP S4 HANA
- python保存变量到本地,下次读取。
- 31.最特殊的快捷键 Alt + Enter 介绍(新用户必看)
- python 贴吧自动回复_python 几行代码实现自动回复功能
- QQ/微信防撤回插件
- 网址域名查询-域名注册查询工具