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
原文地址:https://www.cnblogs.com/wanghuijie1/p/11983147.html