目的:在爬虫中使用异步实现高性能对数据爬取操作。 异步爬虫方式: 1.多线程,多进程(不建议) 好处:可以为相关阻塞对操作单独开启线程或者进程,阻塞操作就可以异步执行。 弊端:无法无限的开启多线程或多进程。 不断的进行线程或进程对开启和关闭会造成资源的大量浪费。 2.线程池,进程池(适当的使用) 好处:我们可以降低系统对进程或线程创建和销毁的频率,从而更好地降低系统的开销。 弊端:池中的线程或进程的数量是有上限的。 3.单线程+异步协程(推荐): event_loop:事件循环,相当于一个无限循环,我们可以把一些函数注册到这个事件循环上,当满足某些条件的时候,函数就会被循环执行。 coroutine:协程对象,我们可以将协程对象注册到事件循环中,它会被事件循环调用。我们可以使用async关键字定义一个方法,这个方法 在调用时不会立即执行,而是返回一个协程对象。 task:任务,它对协程对象的进一步封装,包含了任务对各种状态。 future:代表将来执行或还没执行的任务,实际上和task没有本质区别。 async:定义一个协程。 await:用来挂起阻塞方法的执行。