11. 实现代理池的启动入口
目标: 把启动爬虫, 启动检测代理IP, 启动WEB服务 统一到一起
思路:
- 开启三个进程, 分别用于启动
爬虫, 检测代理IP, WEB服务
步骤:
- 定义一个run方法用于启动动代理池
- 定义一个列表, 用于存储要启动的进程
- 创建
启动爬虫 的进程, 添加到列表中
- 创建
启动检测 的进程, 添加到列表中
- 创建
启动提供API服务 的进程, 添加到列表中
- 遍历进程列表, 启动所有进程
- 遍历进程列表, 让主进程等待子进程的完成
- 在
if __name__ == '__main__': 中调用run方法
代码
from multiprocessing import Process
from spiders.run_spiders import RunSpider
from proxy_test import ProxyTester
from proxy_api import ProxyApi
def run():
"""总启动方法"""
process_list = []
process_list.append(Process(target=RunSpider.start, name='run_spider'))
process_list.append(Process(target=ProxyTester.start, name='run_tester'))
process_list.append(Process(target=ProxyApi.start, name='run_api'))
for p in process_list:
p.daemon = True
p.start()
for p in process_list:
p.join()
if __name__ == '__main__':
run()
总结
- 为三个模块, 提供统一启动入口
- 开启三个进程, 分别运行, 爬虫模块, 检测模块, API模块.