爬虫的时候有时候会需要请求几千个甚至是几万个页面,这个时候多进程就可以排上用场了。
#导入文件
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()