爬虫多进程:multiprocessing

爬虫的时候有时候会需要请求几千个甚至是几万个页面,这个时候多进程就可以排上用场了。

#导入文件
from multiprocessing import freeze_support
import multiprocessing

#充分利用cpu
if __name__ == '__main__':
  cpu_count = multiprocessing.cpu_count()
  print('Cpu count:', cpu_count)
  #开启进程
  pool = multiprocessing.Pool(cpu_count)
  freeze_support()
  #进程中通信,如果main函数有多个参数,可以使用partial
  #参数中`select_urls`为可迭代对象(列表),all_analyze ,all_advice 每个进程间可以进行共享的参数
  all_analyze = multiprocessing.Manager().list([])  # 主进程与子进程共享这个List
  all_advice = multiprocessing.Manager().list([]) 
  pool.map(partial(main,all_analyze = all_analyze,all_advice =  all_advice),select_urls)
  pool.close()
  pool.join()

你可能感兴趣的:(爬虫多进程:multiprocessing)