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

一般情况下

scrapy是这样的

可以看到

1、调度器 Scheduler  会调度 Requests 队列中的请求

2、然后将每个请求交给下载器 Downloader 下载

3、这时候就会得到相应的 item 数据交给 item Pipeline 处理

如果我们希望有多个爬虫
来爬取一个网站的数据
那么我们的请求队列就要共享
而不能说都是 Request 队列
要不然爬到的数据就都乱套了
所以
我们需要一个共享的队列
就比如说
你希望一块蛋糕能被快速吃掉
你叫来了小明
可是小明只有一张嘴啊
于是你又叫来了他的 py 们
小红和小紫
但是你总不能说
给他们每人各一块蛋糕吧
你是希望一块蛋糕被快速吃掉
你要他们 3 张嘴一起吃掉 同一块蛋糕
你把他们的嘴比作爬虫
把蛋糕比作要爬取的网站
是不是就比较容易理解了
那么
多个爬虫如何共享一个请求队列
以及如何搭建分布式部署爬虫呢
接下来就是
学习 Python 的正确姿势

我们需要用到 redis 队列来共享
巧的是
scrapy-redis这个库就
可以使用 redis 队列
在此之前我们先搞几台服务器
一台用来搭建 redis
一台用来搭建数据库
再搞三台来运行爬虫
服务器买起
别问我哪来这么多服务器
有钱任性(良心帅b喊起来)
服务器有了
搭建起来呗
先把 redis 装上
连接到 redis 服务器
下载 redis
解压到 /usr/local 下
解压完之后
进入
安装一波
安装完之后可以顺便
复制一下 redis 所需的配置文件

接着进入 bin 目录

启动 redis

没毛病

使用本地连接一下

恩~连上了

redis 搭建完

接着我们来搭建数据库的服务器

把 MongoDB 给装上

先连接到数据库的服务器上

下载 mongoDB

解压一波

把解压下来的文件夹

轻轻的移动一下位置

创建个 db 文件夹

开启 mongodb

这里顺便把 bind_ip 设置一下

这样才能被远程访问

往下拉可以看到

mongoDB 监听的是 27017 端口

说明安装和启动成功

使用本地连接试试

可以可以

接着我们需要在

爬虫服务器安装 Python3 环境

slave-02 和 slave-03 服务器

同上安装 python3

ok

环境搭起来了

回到我们之前写的代码

使用 scrapy 爬取 stackoverflow 上的所有 Python 问答

我们把它改成适用分布式的

将 Pipeline 中的数据库地址配置成

我们创建的 mongodb 数据库地址

接着在 setting 中配置

redis 调度和去重

再设置一下延迟访问

搞完了之后

将虚拟环境中的库打包一下

接着把项目

都扔到爬虫服务器上去

连接到爬虫服务器

可以看到刚刚传来的文件

把刚刚在虚拟环境中

生成的第三方库列表

在服务器上一顿安装

其它两台爬虫服务器

和上面一样安装所需要的库

都安装完之后

就终于可以都 TM 跑起来了

所有的爬虫

都特么给我跑起来

哈哈哈哈哈

4台机器开始一顿爬取

可以看到 mongodb 都监听到了

这几台服务器的连接了

我们连到 redis 看看

可以看到

redis 在调度着请求的消息队列

以及过滤重复的请求

再连接到 mongodb 看看

小帅b每隔一小会就查询一下

爬取下来的数量

可以看到

速度还是可以的

ok

以上就是分布式爬虫的

搭建及部署的过程了

当然了

数据库还可以搭建一下集群

数据库之间的连接最好设置账户

进行安全访问等

主要还是让你了解这个过程中

分布式爬虫的搭建和使用

以及体会它的可扩展性和高效性

那么咱们就到这里了

我们下回见,peace

扫一扫

学习 Python 没烦恼

(0)

相关推荐

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

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

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

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

  • 何谓架构?

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

  • Python爬虫常见面试题!

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

  • Python爬虫常用模块及工具!

    想要学好Python,除了合适的学习路线外,选择合适的工具也很重要,它可以提高我们的工作效率,也可以节省时间.这篇文章重点为大家介绍Python爬虫常用工具,快跟着小编来看看吧. 第一种:常用模块介绍 ...

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

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

  • 不是每台服务器,都能叫浪潮M6

    云.AI和5G等新兴技术推动了数据中心市场的不断增长,同时以x86服务器标准为蓝本,数据中心的硬件逐渐走向标准化和同质化,也因此有了硬件创新放缓的说法.   在虚拟化技术,容器技术等软件创新成为了云时 ...

  • 一台服务器两个网卡接入同一网段,会发生什么?

    来自公众号:车小胖谈网络 一台服务器网卡A,B分别接入局域网A,B,都是192.168.1段,A网关是192.168.1.1,B网关是192.168.1.2,如果A里面192.168.1.100:50 ...

  • 【高可用架构】借助Envoy工具发布项目到多台服务器(二)

    前言 在上一篇,我们已经成功在开发机上部署了Deploy项目,下面我们继续在开发机上安装Envoy 两台应用服务器的IP 192.168.10.12 192.168.10.18 [高可用架构]系列链接 ...

  • 穷折腾,淘了台服务器当台式机用

    此文献给同样爱穷折腾的同志们. 坑已经挖好,等着你们... 先讲一个悲伤的故事. 本来 双 CPU + 32G 内存 + DL180 G6 只要 1000 元的样子就可以. 由于本人没有服务器安装经验 ...

  • 编程语言两台服务器文件实时同步如何在linux下实现的方案

    假设有如下需求: 假设两个服务器: 192.168.0.1 源服务器 有目录 /opt/test/ 192.168.0.2 目标服务器 有目录 /opt/bak/test/ 实现的目的就是保持这两个服 ...

  • 自己拥有一台服务器可以做哪些很酷的事情?

    搭建个人博客/知识库 有了自己独立的服务器,大多数人可能都会拿来做个博客玩玩. 这里比较推荐 WordPress ,它可以帮助我们傻瓜式的搭建一个强大的个人博客. 除了 WordPress 之外,像 ...

  • 从单楼破冰到整居委推进:虹口加梯迈入3.0时代 今年已有66台加装电梯在建

    新民晚报讯(特约通讯员 龙钢 记者 袁玮)随着丰镇路14弄1号加装电梯今天正式施工,虹口区今年已有66台加装电梯正在施工,预计上半年有近50台加装电梯竣工投入使用.记者从虹口区房管局了解到,该区切实做 ...

  • 云服务器续费太贵, 直接在家搭一台, 再也不受约束了

    开机吧,少年 局域网访问 外网访问 最终迁移 杀熟 续费比新买贵很多 点击加载图片 典型的杀熟啊! 劳神伤财 每隔几年就要折腾一次. 有小伙伴可能会说了,可以用家人的账号购买啊.是的,不过购买新服务器 ...

  • 想与众不同?就整一辆全球限量300台的VV7 GT 巴博斯版!

    2020北京国际车展正在火热进行,观众们的热情丝毫没有被疫情余温所影响,不管是奔驰.宝马.奥迪还是长城.吉利.长安等展台都是人潮如涌.可见人们对于豪车的喜爱或者欣赏,是永恒的! 说到豪车,除了人们熟悉 ...