zoukankan      html  css  js  c++  java
  • 04、如何提高爬取效率

    • 线程池
    • 多任务的异步协程
      • asyncio
        • 特殊的函数
        • 协程
        • 任务对象
          • 任务对象绑定
        • 事件循环
    • from multiprocessing.dummy import Pool
    • map(func,alist):
      • 可以让func回调函数处理alist中的每一个列表元素,这个处理的过程是基于异步。
    import requests
    import time
    from multiprocessing.dummy import Pool
    start = time.time()
    pool = Pool(3)
    urls = [
        'http://127.0.0.1:5000/index',
        'http://127.0.0.1:5000/index',
        'http://127.0.0.1:5000/index'
    ]
    #用作与网络请求(耗时)
    def req(url):
        return requests.get(url).text
    
    page_text_list = pool.map(req,urls)
    print(page_text_list)
    print('总耗时:',time.time()-start)
    
    ['hello bobo!!!', 'hello bobo!!!', 'hello bobo!!!']
    总耗时: 2.1126856803894043
    
  • 相关阅读:
    Java修饰符大汇总
    死锁
    线程的几种可用状态
    重载与覆盖(重写)
    Git
    JS跨域
    Spring中的Bean
    ZooKeeper
    Mysql(2)
    Maven
  • 原文地址:https://www.cnblogs.com/wanghuijie1/p/11983147.html
Copyright © 2011-2022 走看看