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

一般情况下

scrapy是这样的

227d525428cdeaff9ee38b3a3d6949cb.png

可以看到

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

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

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

如果我们希望有多个爬虫来爬取一个网站的数据那么我们的请求队列就要共享而不能说都是 Request 队列要不然爬到的数据就都乱套了78e800e6e94fc8958e8cb0a30895a275.png所以我们需要一个共享的队列就比如说你希望一块蛋糕能被快速吃掉

你叫来了小明可是小明只有一张嘴啊于是你又叫来了他的 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

环境搭起来了

回到我们之前写的代码

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

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

我们创建的 mongodb 数据库地址

接着在 setting 中配置

redis 调度和去重

05b2cb5c72c146823ad0074912c4f710.png

再设置一下延迟访问

9a2265aaf66a9d3ec8ae34a6938a99f8.png

搞完了之后

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

2d43f9a80bd936d07e65ec9afee3431e.png

d65eef03bb0dbd60db58681df5bb26c3.png

接着把项目

都扔到爬虫服务器上去

6e657a0d0636f119fd11d07aa79a3681.png

连接到爬虫服务器

可以看到刚刚传来的文件

0a04c1b3100f18730b6b12862a6a222f.png

把刚刚在虚拟环境中

生成的第三方库列表

在服务器上一顿安装

da9a18f17dd1e2aba9ab765be82413c5.png

其它两台爬虫服务器

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

都安装完之后

就终于可以都 TM 跑起来了

所有的爬虫

都特么给我跑起来

哈哈哈哈哈

4台机器开始一顿爬取

可以看到 mongodb 都监听到了

这几台服务器的连接了

我们连到 redis 看看

可以看到

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

以及过滤重复的请求

再连接到 mongodb 看看

b74c8855ff23b79ecea4ac40a6ad4fce.png

a2354467de9a781a3714b33a49a78908.png

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

爬取下来的数量

可以看到

速度还是可以的

ok

以上就是分布式爬虫的

搭建及部署的过程了

当然了

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

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

进行安全访问等

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

分布式爬虫的搭建和使用

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

那么咱们就到这里了

我们下回见,peace

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值