版权声明:欢迎读阅 https://blog.csdn.net/weixin_44266137/article/details/88657890
这里的代码并不完善,只是初步搭建了一个模型。方便以后备用
# -*- encoding: utf-8 -*-
# 导包
from multiprocessing import Process,Queue
# 定义多进程抓取类
class MpSpider(Process):
"""
自定义类可以继承系统类
"""
# 初始化
def __init__(self,url,q):
# 重写父类方法
super().__init__()
self.url = url
self.q = q
# 定义抓取方法
def run(self):
# 进程间通信。
self.q.put('1234')
# 程序入口
if __name__ == "__main__":
# 创建消息队列 给参数是限制有多少
q = Queue()
url_list = range(20)
# 建立进程容器
Process_list = []
for url in url_list:
# 关键点 实例化对象
p = MpSpider(url,q)
# 启动进程
p.start()
# 放入容器
Process_list.append(p)
# 阻塞主进程。防止主进程提前关闭
for i in Process_list:
i.join()
# 打印队列内容
while not q.empty():
print(q.get())
很简单的实现步骤。逻辑也很简单