Python异步IO(协程)

asyncio

 

import asyncio

#获取事件循环
loop = asyncio.get_event_loop()

#定义协程
async def myfunc(url):
   await get_url(url) #await超级循环不会一直等待,会切换到下一个url爬取,async with创建对象
   
#创建task列表
task = [loop.create_task(myfunc(url)) for url in urls]

# 执行爬虫事件列表
loop.run_until_complete(asyncio.wait(task))

注意:要用在异步IO编程中,依赖的库必须支持异步IO特性

爬虫引用:requests不支持异步,需要用aiohttp

 

posted @ 2022-05-03 18:32  Asolitary  阅读(60)  评论(0编辑  收藏  举报