异步 50
测试下载100个图片
耗时:1.95628 s
代码如下
代码如下
import asyncio
import aiohttp
import time
import random
async 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:
break
f.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 = 50
lastTime = 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) + 1
for 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 random
async 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:
break
f.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 = 100
lastTime = 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) + 1
for 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))



