爬虫 :scrapy_redis分布式原理及主从配置

scrapy-redsi分布式
1.什么分布式?
由多个计算机共同完成一个任务的模式。
多个计算机共同完成,可以提高效率。
问题:如何让多个计算机协同处理一件事?
在这里插入图片描述
2.scrapy-redis涉及的就是爬虫项目的分布式部署。
我们把一个相同的爬虫项目部署到多个机器上,让多个机器同时爬取,增加爬取效率。
分布式思路:
1.在存入数据的时候,我们可以规定一台电脑是主机,所有人都链接这个电脑数据库存入数据。
2.数据都是重复的。—怎么让数据不重复,就可以实现分布式。

如果实现分布式,我们需要建立一个公共的区域,让四个电脑去公共区域里面拿任务,这个思想和多线程任务分配很像。

通过公共管理对象,来约束每一个相互独立的资源或者程序。
在这里插入图片描述
1.导入:from scrapy_redis.spiders import RedisSpider
更改spider继承,让spider继承RedisSpider
2.注释start_urls,新建一个py文件,用来将url存储到redis数据中。

3.在spider增加类变量redis_key,

,spider设置完毕
4.在settings中进行配置。
主机setting配置:
###配置scrapy-redis调度器
SCHEDULER = “scrapy_redis.scheduler.Scheduler”
###配置url去重
DUPEFILTER_CLASS = “scrapy_redis.dupefilter.RFPDupeFilter”
ITEM_PIPELINES = {
‘scrapy_redis.pipelines.RedisPipeline’: 300 #同时可有mongo的
}
SCHEDULER_QUEUE_CLASS = ‘scrapy_redis.queue.PriorityQueue’
###主机名
REDIS_HOST = ‘localhost’
##端口号
REDIS_PORT = 6379
2.从机步骤:
1,将star_urls初始化的代码全部注释。
2.从机的redis可以关闭
3、‘REDIS_HOST’:主机ip,
‘MONGO_URI’:‘localhost’
从机setting配置:
SCHEDULER = “scrapy_redis.scheduler.Scheduler”
# 去重
‘DUPEFILTER_CLASS’: “scrapy_redis.dupefilter.RFPDupeFilter”
‘SCHEDULER_QUEUE_CLASS’ :‘scrapy_redis.queue.PriorityQueue’

# ITEM_PIPELINES = {
#     'scrapy_redis.pipelines.RedisPipeline': 300
# }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy Redis是一个用于分布式爬取网页的Python框架。它是基于Scrapy框架的扩展,采用Redis作为分布式队列,可以在多个爬虫节点之间共享任务和数据。通过引入scrapy_redis.spider文件中的RedisSpider类,可以将原来继承的scrapy.Spider类改为RedisSpider类,从而实现对分布式爬虫的支持。 在使用分布式爬虫的过程中,首先需要将项目配置分布式,并将项目拷贝到多台服务器中。然后启动所有的爬虫项目,这样每个爬虫节点都可以独立运行。接下来,在主redis-cli中使用lpush命令将需要爬取的网址推送到Redis队列中。这样,所有的爬虫节点都会开始运行,同时获取不同的任务和数据,实现分布式爬取的效果。 要使用Scrapy Redis进行分布式爬取,首先需要安装scrapy_redis包。可以通过在CMD工具中执行命令"pip install scrapy_redis"来进行安装。安装完成后,就可以在项目中使用scrapy_redis进行分布式爬取了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Scrapy基于scrapy_redis实现分布式爬虫部署](https://blog.csdn.net/baoshuowl/article/details/79701303)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值