说说分布式爬虫

我们大多时候玩的爬虫

都是运行在自己的机子

之前

我们为了提高爬虫的效率

说过多进程相关的

今天

小帅b想跟你聊聊

分布式爬虫

那么接下来就是
学习 Python 的正确姿势

在此之前
我们先来了解一下
什么是分布式?
你开发一个网站
想要给别人访问
就需要把网站部署到服务器
当网站用户增多的时候
一个服务器就不满足需求了
于是就会把网站部署到多个服务器上
这种情况通常叫集群
就是把整个网站的所有功能
都同时部署到不同的服务器上
一般会使用 ngnix 作负载均衡
不过
有些功能并发量并不是很高
比如一些后台的管理
所以就有人想
要不然把这个网站的
功能都拆分出来
让每一个模块只负责具体的功能
比如登录模块,内容管理模块等
然后在部署的时候
把一些并发量大的模块
部署到多个服务器就行了
耦合度大大的降低了
并发量小的模块
也不会浪费那么多资源了
当然
这时需要让模块与模块之间产生联系
也就是调度好它们
一般会用到消息队列
这就是所谓的
分布式
对于一些数据不大的数据
我们的爬虫一般是直接在电脑运行了
也就是所谓的
单机爬虫
而分布式爬虫
说白了
就是把爬虫的关键功能
以我们刚说的分布式形式
部署到多台机器上
然后一起盘(爬)它
那么如何将爬虫之间联系起来呢
我们可以使用 Redis 的消息队列
进行调度(schedule)
之前我们也有说过 redis
它是一个读写速度快的
缓存数据库
还提供了类似 Python 的
list、set 等数据结构
而且它还可以将内存的数据写到磁盘
性能杠杠的
在 scrapy 框架里面
就有一个 scrapy-redis
专门用它来调度爬虫的
它可以将请求的 url 放到
redis 的消息队列里面
然后用 spider 模块
将数据给结构化抽出来
放到 redis 数据库里面去
当然,分布式爬虫
有时候还会结合数据库集群爬取数据
ok,以上
主要让你了解一下分布式
下次有时间小帅b考虑
弄个小例子来体现一下
那么我们下回见
peace

扫一扫

学习 Python 没烦恼

什么?
分布式?
先看看你家的网站有没 10 个并发再说吧...
(0)

相关推荐

  • Scrapy和scrapy-redis有什么区别?Python入门!

    Python工程师的就业方向有很多,其中包含Python爬虫开发,它是非常受欢迎的就业岗位,也是很多企业热招的岗位.那么你知道面试Python爬虫开发工程师的时候会问及哪些问题吗?老男孩教育为大家提供 ...

  • Python爬虫常见面试题!

    众所周知,爬虫是Python重要的应用方向之一,也是学习Python求职的热门岗位.对此,为帮助学员们快速通过面试,小编整理了一些Python爬虫常见面试题,希望能够帮助到你们. 1. 试列出至少三种 ...

  • 何谓架构?

    前言:在这个知识分享的爆炸时代,鉴于java生态的完整和繁荣,各种框架.中间件和工具包供我们使用.连新培训出来的人都知道ssm,微服务.集群.多线程.队列.高并发等技术,技术的间隔性正变得越来越小,仿 ...

  • 爬虫工程师的进阶一览图(爬虫工程师水平对照表)根据崔庆才崔大神的文章总结的

    __Pythoner__ 2020-02-28 01:36:10  1881  收藏 65 分类专栏: 爬虫 Python 版权 爬虫 同时被 2 个专栏收录 7 篇文章0 订阅 订阅专栏 Pytho ...

  • scrapy和scrapy-redis有什么区别?

    Scrapy和Scrapy-redis有什么区别?简单的来讲,Scrapy是一个通用的爬虫框架,但不支持分布式;而Scrapy-redis就是为了方便实现Scrapy框架的分布式抓取.具体内容跟着小编 ...

  • 基于golang分布式爬虫系统的架构体系v1.0

    基于golang分布式爬虫系统的架构体系v1.0 一.什么是分布式系统 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统.简单来说就是一群独立计算机 ...

  • 我整来了几台服务器,就是为了给你演示一下分布式爬虫的整个过程

    一般情况下 scrapy是这样的 可以看到 1.调度器 Scheduler  会调度 Requests 队列中的请求 2.然后将每个请求交给下载器 Downloader 下载 3.这时候就会得到相应的 ...

  • Python爬虫技术--基础篇--进程 vs. 线程和分布式进程

    Python爬虫技术--基础篇--进程 vs. 线程和分布式进程

  • 微服务实践之分布式定时任务

    承接上篇:上篇文章讲到改造 go-zero 生成的 app module 中的 gateway & RPC .本篇讲讲如何接入 异步任务 以及 log的使用. Delay Job 日常任务开放 ...

  • Redis分布式锁升级版RedLock及SpringBoot实现

    分布式锁概览 在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问,Java中我们一般可以使用synchronized语法和ReetrantLock去保证,这实际上是本地锁的方式.但是现在 ...

  • 分布式混合学习模型

    通讯技术的发展促进了地理上分散的团队的文化,这些团队包括在客户位置工作的员工,在家工作的员工和远程工作的员工.对于销售团队而言,必须在偏远地区分配员工. 随着时间的推移,管理分布式劳动力的挑战和风险越 ...

  • 【Python爬虫】:使用高性能异步多进程爬虫获取豆瓣电影Top250

    在本篇博文当中,将会教会大家如何使用高性能爬虫,快速爬取并解析页面当中的信息.一般情况下,如果我们请求网页的次数太多,每次都要发出一次请求,进行串行执行的话,那么请求将会占用我们大量的时间,这样得不偿 ...

  • 【Python爬虫】:破解网站字体加密和反反爬虫

    前言:字体反爬,也是一种常见的反爬技术,例如58同城,猫眼电影票房,汽车之家,天眼查,实习僧等网站.这些网站采用了自定义的字体文件,在浏览器上正常显示,但是爬虫抓取下来的数据要么就是乱码,要么就是变成 ...

  • 分布式航迹融合系统评价指标体系优化

    0 引言 数据融合技术越来越多地应用于包括C4ISR系统和各种武器平台在内的军事领域和许多民事领域[1].但是对融合算法和系统性能的研究成果和应用效果的评估国内外研究都比较欠缺,主要原因是多传感器信息 ...