python异步协程网络爬虫基础

文章介绍了Python中使用asyncio模块创建和管理协程,通过asyncdef定义协程功能,并利用await关键字处理IO密集型任务的挂起。aiohttp模块用于异步请求,建立客户端会话并发送请求,最后关闭会话。协程和异步请求能有效提高程序执行效率。
摘要由CSDN通过智能技术生成
协程:单线程,挂起切换。
模块:协程模块:asyncio
     异步请求模块:aiohttp
总括:
    协程是通过事件循环,对将协程对象转化的事件进行挂起,实现切换和加速,
    针对的是IO密集型的任务。
创建协程:
    定义协程功能:
        通过async def定义协程功能(函数),同时要利用await关键字对IO任务进行挂起,
        返回协程对象(coroutine)。
将协程转化为事件(task):
        事件记录了协程的状态。
        asyncio.ensure_future(coroutine)
        # task = asyncio.ensure_future(coroutine)
建立事件循环(event_loop):
    asyncio.get_event_loop()
    # event_loop = asyncio.get_event_loop()
将事件注册到循环中:
    tasks为事件列表。
    event_loop.event_loop.run_until_complete(asyncio.wait(tasks))
获取事件(协程)返回值:
    task.result()方法。
    一定要将协程对象(coroutine)封装成事件对象(task),要不返回值就丢了。
异步请求模块使用:
    建立客户端会话:
        session = aiohttp.ClientSession()
    会话发送请求:
        response = await session.get(self.url, headers=self.headers, params=params)
        #这步通常挂起。其他与requests类似。
     关闭会话:
         await session.close()
        #必须关,不关报错。通常也挂起。
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追风的异乡人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值