34 lines
917 B
Python
34 lines
917 B
Python
import asyncio
|
|
import aiohttp
|
|
|
|
# 案例优美图库
|
|
|
|
urls = [
|
|
'http://kr.shanghai-jiuxin.com/file/bizhi/20220927/vif3daynop3.jpg',
|
|
'http://kr.shanghai-jiuxin.com/file/bizhi/20220927/0yrighfazhu.jpg',
|
|
'http://kr.shanghai-jiuxin.com/file/bizhi/20220927/rggtiwgnyzj.jpg'
|
|
]
|
|
|
|
|
|
async def aiodownload(url):
|
|
# 发送请求、得到图片内容、保存图片
|
|
# s = aiohttp.ClientSession()# 等价于request模块
|
|
name = url.rsplit('/', 1)[1]
|
|
async with aiohttp.ClientSession() as session:
|
|
async with session.get(url) as r:
|
|
# 请求完,写入文件
|
|
with open(name, mode='wb') as f:
|
|
t = await r.content.read()
|
|
f.write(t) # 读取是异步的,需要await
|
|
|
|
|
|
async def main():
|
|
tasks = []
|
|
for url in urls:
|
|
tasks.append(aiodownload(url))
|
|
|
|
await asyncio.wait(tasks)
|
|
|
|
if __name__ == '__main__':
|
|
asyncio.run(main())
|