分布式爬虫理解

我们大多时候玩的爬虫
都是运行在自己的机子,就是单机模式

之前我们为了提高爬虫的效率,说过多进程相关的,今天来讲讲什么是分布式爬虫。

一、 什么是分布式?

你开发一个网站想要给别人访问就需要把网站部署到服务器
在这里插入图片描述
当网站用户增多的时候一个服务器就不满足需求了于是就会把网站部署到多个服务器上
在这里插入图片描述
这种情况通常叫集群,就是把整个网站的所有功能,都同时部署到不同的服务器上一般会使用 ngnix 作负载均衡。不过有些功能并发量并不是很高比如一些后台的管理,所以就有人想要不如把这个网站的功能都拆分出来,让每一个模块只负责具体的功能

比如登录模块,内容管理模块等
在这里插入图片描述
然后在部署的时候把一些并发量大的模块部署到多个服务器就行了,耦合度大大的降低了,并发量小的模块也不会浪费那么多资源了

当然模块与模块之间会产生联系,也就是如何调度好它们,一般会用到消息队列
在这里插入图片描述
这就是所谓的分布式了。

对于一些数据不大的数据我们的爬虫一般是直接在电脑运行了,而分布式爬虫说白了,就是把爬虫的关键功能以分布式形式部署到多台机器上然后一起爬
在这里插入图片描述

二、模块联系

那么如何将爬虫之间联系起来呢?
我们可以使用 Redis 的消息队列进行调度(schedule)之前我们也有说过 redis,它是一个读写速度快的缓存数据库,还提供了类似 Python 的list、set 等数据结构

scrapy 框架里面就有一个scrapy-redis专门用它来调度爬虫的,它可以将请求的 url 放到redis 的消息队列里面,然后用 spider 模块将数据给结构化抽出来放到 redis 数据库里面去。
当然,分布式爬虫有时候还会结合数据库集群爬取数据。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值