爬虫入门第11课:实现代理池的启动入口

Posted 黑马程序员官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫入门第11课:实现代理池的启动入口相关的知识,希望对你有一定的参考价值。

爬虫学习知识点及案例篇(汇总):

爬虫入门第1课:代理池概述及开发环境

爬虫入门第2课:代理池的设计

爬虫入门第3课:实现代理池思路

爬虫入门第4课:定义代理IP的数据模型类

爬虫入门第5课:实现代理池工具模块

爬虫入门第6课:实现代理池的校验模块

爬虫入门第7课:实现代理池的数据库模块

爬虫入门第8课:实现代理池的爬虫模块

爬虫入门第9课:实现代理池的检测模块

爬虫入门第10课:实现代理池的API模块

Python爬虫项目:Bilibili模拟登陆(滑动验证码)

本阶段带大家从代理池的设计开始,学习Python爬虫及项目实战,详情关注上方专栏 ↑↑↑


  • 目标: 把启动爬虫启动检测代理IP启动WEB服务 统一到一起
  • 思路:

    • 开启三个进程, 分别用于启动爬虫检测代理IPWEB服务
  • 步骤:

    • 定义一个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模块.

以上是关于爬虫入门第11课:实现代理池的启动入口的主要内容,如果未能解决你的问题,请参考以下文章

爬虫入门第8课:实现代理池的爬虫模块

爬虫入门第9课:实现代理池的检测模块

爬虫入门第10课:实现代理池的API模块

爬虫入门第2课:代理池的设计

爬虫入门第7课:实现代理池的数据库模块

爬虫入门第6课:实现代理池的校验模块