zoukankan      html  css  js  c++  java
  • 线程池

    • 线程池

      • 导包:from multiprocessing.dummy import Pool
      • pool.map(callback,alist)
        • 让callback可以异步将alist中的列表元素进行某种形式的操作
        • 注意事项:callback必须要有一个参数、
      • 主要是被应用在耗时的操作
    • 单线程+多任务的异步协程

      • 特殊函数

        • 如果一个函数的定义被async关键字修饰后,则该函数就是一个特殊的函数。
        • 特殊之处:
          • 该函数被调用后函数内部的实现语句不会被立即执行。
          • 该函数会返回一个协程对象
      • 协程:

        • 对象。当特殊的函数被调用后,该函数就会返回一个协程对象。
        • 协程对象 == 特殊函数
      • 任务对象

        • 就是对协程对象的进一步封装(就是一个高级的协程对象)
        • 任务对象协程对象特殊函数
        • 绑定回调:
          • task.add_done_callback(funcName)
          • funName这个回调函数必须要带一个参数,这个参数表示的就是当前的任务对象
            • 参数.result():表示的就是当前任务对象对应的特殊函数的返回值
      • 事件循环对象:

        • 创建事件循环对象
          • asyncio.get_event_loop()
        • 需要将任务对象注册到该事件循环对象中且启动事件循环
          • loop.run_until_complete(task)
      • 等待(await):当阻塞操作结束后让loop回头执行阻塞之后的代码

      • 挂起(wait()):将当前的任务对象交出cpu的使用权

      • 【重点注意事项】:

        • 在特殊函数实现内部不可以出现不支持异步的模块代码,否则会中断整个的异步效果
      • aiohttp:

        • requests不支持异步,不可以出现在特殊函数内部。

        • aiohttp:支持异步的网络请求模块

          • pip install aiohttp
        • 代码的编写:

          • 写出基本架构
            with aiohttp.ClientSession() as sess:
            #with sess.get/post(url=url,headers=headers,data/params,proxy="http://ip:port") as response:
            with sess.get(url=url) as response:
            #text():获取字符串形式的响应数据
            #read():获取bytes类型的响应数据
            page_text = response.text()

                    return page_text
            
          • 补充细节

            • 在每一个with前加上async
            • 在每一个阻塞操作前加上await关键字
              • 代码参照完整代码
        • 完整代码:
          async with aiohttp.ClientSession() as sess:

          with sess.get/post(url=url,headers=headers,data/params,proxy="http://ip:port") as response:

          async with await sess.get(url=url) as response:
          #text():获取字符串形式的响应数据
          #read():获取bytes类型的响应数据
          page_text = await response.text()

           return page_text
          
    • 解析到带html标签的文本内容

      • bs4
    python
  • 相关阅读:
    爬虫基础 2.1 http原理
    爬虫基础 2.1 http原理
    3.29上午
    3.28
    3.27下午
    3.27上午
    3.24上午
    3.23下午
    3.23上午
    3.22上午
  • 原文地址:https://www.cnblogs.com/bky20061005/p/12160815.html
Copyright © 2011-2022 走看看