一起学爬虫(Python) — 11

一起学爬虫(Python) — 19 年轻人,进来学自动化

概念

  1. event_loop:事件循环,也就是通过不断的循环获取任务的状态(完成/未完成)来分配任务。
  2. coroutine:协程对象,python中万物皆对象,不多说,懂的都懂。
  3. task:任务对象,对协程对象进行包装,加上了状态,完成和未完成。
  4. future:和task一样,只不过可以提前包装。
  5. async:定义一个协程,定义!
  6. await:挂起阻塞的操作,还记得之前说的IO等待吗,在那前面就要用到这个。

第一个案例

第一步,导入我们的asyncio模块,async+io!!!
在这里插入图片描述
第二步,用async定义一个协程,定义!
在这里插入图片描述
记住用await挂起阻塞的操作,也就是asyncio.sleep(2),这里是为了模拟下载所需要花费的时间!

awa

第三步,创建一个协程对象,对象,懂的都懂!
在这里插入图片描述

第四步,用event_loop创建一个事件循环,也就是游戏里的任务公布栏之类的~
在这里插入图片描述
第五步,是不是觉得该把任务对象方法事件循环中了??还真是的!
在这里插入图片描述

然后执行,就会成功执行我们的async函数:
在这里插入图片描述

第二个案例

那么这个时候就要有人问了,刚开始说的1,2,5,6都用上了,那3,4呢,3,4呢,3,4呢……
这就给大家用上!
task

  • 在这里插入图片描述
    这里我们就把duixiang这个协程对象放置到task任务对象,然后再把task任务对象放到任务列表中:
    在这里插入图片描述
    那么到这里就有人问了,用task和不用task又没有区别,为什么要用task呢?

我们来打印一下任务完成前后的task!

在这里插入图片描述

看到没有!!task给每个任务都贴上了标签,让循环器更好的去筛选哪些是完成了的,哪些是没完成的!

future也是一样的,这里就不多说了,我们主要用task。

实现异步下载图片

昨天呢,我们本来是要用异步实现下载图片的,但是遇到了一个小问题,那就是requests模块它不支持异步,那我们也没有办法强人锁男的啦,人各有志,让我们工地见面。

好啦,教大家一个支持异步的同时也支持requests功能的新模块!

aiohttp aiohttp aiohttp aiohttp aiohttp ……

aiohttp

首先,环境安装!

pip install aiohttp

当然你也可以在pycharm里直接搜索安装模块!

安装完了这个模块之后呢&

  • 46
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值