爬虫(笔记06)/scrapy-redis(分布式)

01.分布式爬虫实现

							分布式爬虫实现
分布式爬虫实现
		一、配制爬虫
		二、配置任务队列
		三、验证效果

	https://www.cnblogs.com/qq631243523/p/10477665.html(原理参考博客)

一、配制爬虫
1.使用scrapy新建一个爬虫项目
在这里插入图片描述
2.把scrapy-redis包拷贝到项目中
第一次讲课时,导入是为了带领学员看一下scrapy-redis的结构
以后熟练之后不用导入这个,只要在安装了pip install scrapy-redis之后,直接使用from导入即可。

3.在settings.py中配置路径
#调度器
SCHEDULER = “scrapy_redis.scheduler.Scheduler”
#去重
DUPEFILTER_CLASS = “scrapy_redis.dupefilter.RFPDupeFilter”
#redis服务器地址
REDIS_HOST = ‘localhost’
#redis端口号
REDIS_PORT = 6379
##开启队列
SCHEDULER_QUEUE_CLASS = ‘scrapy_redis.queue.PriorityQueue’

4.修改爬虫文件
在这里插入图片描述
二、配置任务队列
1.新建一个redis_urls.py文件
把任务添加到redis数据库中
在这里插入图片描述
三、验证效果
1.运行爬虫
在这里插入图片描述
注:这时程序会阻塞等待任务,如下图所示
在这里插入图片描述
2.启用redis数据库
在这里插入图片描述
3.添加任务
运行start_urls.py在master中添加任务后,之前的阻塞就会自动领取任务进行爬取

02.使用集群完成分布式爬虫系统

	关于多台机器共享redis任务队列的实现
		事实上分布式爬虫部署在一个服务器集群中,每台机器可以从master主机领取任务,下面我给大家显示一下具体操作。 将一台电脑设定为master,其它电   脑为slave。先确定其它salve可以获取master主机中的redis数据。即将刚才的程序分给发slave,然后修改settings.py中的redis_host地址和端口。
如果局域网连接redis数据库报10054错,如下图所示:

在这里插入图片描述
解决方案:
(1)打开配置文件redis.windows.conf,文件位置如下图所示:
在这里插入图片描述
(2)主要改动,参加下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考链接:https://blog.csdn.net/lh2420124680/article/details/75426144

(3)重启redis服务器:
修改了配置文件后,为了确保配置后的文件生效,我们可以用命令:redis-server.exe redis.window.conf,如下图所示:
在这里插入图片描述
这样slave就可以共享master中的任务队列了,完成数据的分布式爬取了

报10061错:
在这里插入图片描述

03.分布式爬虫中的MongoDB

一、局域网中访问mongoDB
1.修改mongo.config文件
在这里插入图片描述
添加如下信息(路径需要根据自已安装目录进行调整):
#dbpath=D:\Program Files\MongoDB\Server\3.4\data\db
#logpath=D:\Program Files\MongoDB\Server\3.4\data\log\mongo.log
dbpath=E:\MongoDB\data\db
logpath=E:\MongoDB\data\log\mongo.log
logappend=true
journal=true
quiet=true
port=27017

2.从机将数据汇总到MongoDB中
参考代码:
https://note.youdao.com/ynoteshare1/index.html?id=3e44fb1dccf4ad4ae4a9661f1e37fcec&type=note
3.Master主机加入任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值