Files
python/python爬虫/异步http请求.py
2025-08-05 09:19:34 +08:00

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())