zoukankan      html  css  js  c++  java
  • 异步编程基础知识

    异步在IO密集型场景有优势,应用在爬虫场景就是:

    import aiohttp  # 异步的库
    import asyncio
    import time
    
    
    async def fetch(base_url):
        # 获取一个目标网站的三个页面
        url_list = [base_url + "?o=1", base_url + "?a=22", base_url + "?b=333"]
    
        for url in url_list:
            print(url)
            async with aiohttp.ClientSession() as session:
    
    
    
            await session.get(url) #异步语句,关键字await产生了阻塞, 

    if __name__ == '__main__': time1 = time.time() a = fetch("http://127.0.0.1:8000/aaaa") b = fetch("http://127.0.0.1:8000/bbbb") c = fetch("http://127.0.0.1:8000/ccc") loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait([a, b, c])) print("done:{}".format(time.time() - time1))
  • 相关阅读:
    day⑥:logging模块
    day⑥:shelve模块
    day⑥:xml模块
    day⑤:冒泡排序
    day⑤:模块
    day⑤:re深入
    day④:递归
    day④:迭代器
    day④:装饰器
    day③:函数式编程
  • 原文地址:https://www.cnblogs.com/jameskane/p/8457030.html
Copyright © 2011-2022 走看看