目标:把启动爬虫,启动检测代理ip,启动web服务统一到一起
思路:
开启三个进程分别用于启动爬虫,检测代理ip,web服务
步骤:
定义一个run方法用于启动代理池
定义一个列表,用于存储要启动的进程
创建启动爬虫的进程,添加到列表中
创建启动检测的进程,添加到列表中
创建启动web服务的进程,添加到列表汇总
遍历进程列表,启动所有进程
遍历进程列表,让主进程等待子进程的完成
扫描二维码关注公众号,回复:
10484993 查看本文章
在main方法中调用run方法
代码:
from multiprocessing import Process from core.proxy_spider.run_spiders import RunSpider from core.proxy_test import ProxyTester from core.proxy_api import ProxyApi """ 11. 实现代理池的启动入口 目标: 把启动爬虫, 启动检测代理IP, 启动WEB服务 统一到一起 思路: 开启三个进程, 分别用于启动爬虫, 检测代理IP, WEB服务 步骤: 1. 定义一个run方法用于启动动代理池 1. 定义一个列表, 用于存储要启动的进程 2. 创建 启动爬虫 的进程, 添加到列表中 3. 创建 启动检测 的进程, 添加到列表中 4. 创建 启动提供API服务 的进程, 添加到列表中 5. 遍历进程列表, 启动所有进程 6. 遍历进程列表, 让主进程等待子进程的完成 2. 在 if __name__ == '__main__': 中调用run方法 """ def run(): # 1. 定义一个列表, 用于存储要启动的进程 process_list = [] # 2. 创建 启动爬虫 的进程, 添加到列表中 process_list.append(Process(target=RunSpider.start)) # 3. 创建 启动检测 的进程, 添加到列表中 process_list.append(Process(target=ProxyTester.start)) # 4. 创建 启动提供API服务 的进程, 添加到列表中 process_list.append(Process(target=ProxyApi.start)) # 5. 遍历进程列表, 启动所有进程 for process in process_list: # 设置守护进程 process.daemon = True process.start() # 6. 遍历进程列表, 让主进程等待子进程的完成 for process in process_list: process.join() if __name__ == '__main__': run()