爬虫多进程: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()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容