爬虫第四章 单线程+多任务异步协程

单线程+多任务异步协程: asyncio

事件循环 loop: 无限循环的对象,事件循环中最终需要将一些特殊的函数注册到该事件循环中

     特殊的函数: 被ansyc关键字修饰的函数

协程: 本质上是一个对象,可以把协程对象注册到事件循环中,

任务对象:就是对协程对象进一步的封装.

绑定回调(即在执行完特殊函数之后执行这个回调函数):task.add_done_callback(func)

  - func(task) :task 参数表示的就是绑定的任务对象

    - task.result()  返回的就是任务对象对应的特殊函数内部的返回值

    - 回调函数 多被用作爬虫的解析方法(就是标签定位和解析数据)

await: 在执行任务函数的时候,如果出现了阻塞,则必须在前面加一个await进行修饰

异步操作的体现:

  当将多个协程对象注册到事件循环中后,事件循环开启时,则会循环执行其内部的协程对象.

  假如事件循环对象在执行某一个协程对象时,发生了阻塞,则事件循环会执行下一个协程对象

aiohttp模块: 支持异步的网络请求模块  查看中文文档 点击这里

环境安装: aiohttp
如何进行UA伪装:
    session.get(url=url,headers=headers)
参数的伪装:
    session.get(url=url ,headers=headers ,data/params)
代理ip:
    session.get(url=url,headers=headers,proxy='http://代理ip:代理端口')

猜你喜欢

转载自www.cnblogs.com/zty1304368100/p/11025262.html