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模块.