redis 简单使用

目录

安装redis服务

初识scrapy_redis源码

如何用scrapy_redis组建跟redis进行连接:setting设置

分布式爬虫运行命令

总结:

        一,scrapy_redis组件的安装:

        二,作用:

        三,scrapy_redis的流程:

        四,分布式爬虫的运行命令:


本学习 由笑笑老师指导,
回顾常规scrapy爬虫

  1. 爬虫中起始的url构造成request对象-->爬虫中间件-->引擎-->调度器
  2. 调度器把request-->引擎-->下载中间件--->下载器
  3. 下载器发送请求,获取response响应---->下载中间件---->引擎--->爬虫中间件--->爬虫
  4. 爬虫提取url地址,组装成request对象---->爬虫中间件--->引擎--->调度器,重复步骤2
  5. 爬虫提取数据--->引擎--->管道处理和保存数据

从列表中 取出数据:

        lrange  key(demo3) 起始字符(0)  结束字符(1)

往一个目标里面添加数据

        lpush  demo3  aa

创建一个新列表

        rpush dd 1

 如下:存放的是请求对象相关信息。进行判断 有的话抛弃 没有就存储

 

安装redis服务

redis服务的安装视频教程链接:百度网盘 请输入提取码

提取码:un7y

  - 测试: 
    - 输入redis-cli连接到redis数据库
    - 输入set mykey abc在数据库里添加键值对
    - 输入get mykey表示通过键名获取出redis中的键值
  - 结果:abc

初识scrapy_redis源码

从GitHub上将scrapy-redis源码文件下载到本地:GitHub - rmax/scrapy-redis: Redis-based components for Scrapy.

1.运行上图中的dmoz.py文件 借此来解释redis数据库中的结构

2.运行后,此时再打开Redis Desktop Manager的界面

3.我们执行domz的爬虫,会发现redis中多了一下三个键:

4.中止进程后再次运行dmoz爬虫

继续执行程序,会发现程序在前一次的基础之上继续往后执行

如何用scrapy_redis组建跟redis进行连接:setting设置

SPIDER_MODULES = ['example.spiders']
NEWSPIDER_MODULE = 'example.spiders'

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'

# 设置重复过滤器的模块(0RFPDupeFilter),设置了就使用redis集合做去重,不设置的话使用是scrapy自己的去重方式
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

#设置调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"

#****设置爬虫结束的时候 是否要保持redis服务的去重集合和任务队列,为Ture才表示持久化
SCHEDULER_PERSIST = True

#request请求的优先级,默认先进先出
# SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderPriorityQueue"
# SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderQueue"
# SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderStack"

ITEM_PIPELINES = {
    # 'example.pipelines.ExamplePipeline': 300,
    #scrapy_redis的管道, 启动的haul表示吧数据存入redis服务中
    'scrapy_redis.pipelines.RedisPipeline': 400,
}

#日志信息
LOG_LEVEL = 'DEBUG'

# Introduce an artifical delay to make use of parallelism. to speed up the
# crawl.

#速度的限制
DOWNLOAD_DELAY = 1

分布式爬虫运行命令

  • 运行 ,从机名字
    • scrapy runspider myspider_redis.py
  • 设置redis-key获取start_url

总结:

        一,scrapy_redis组件的安装:

pip install scrapy-redis

        二,作用:

加快项目的运行速度,但是需要的资源还是原有的,单个节点的不稳定性不影响整个系统的稳定性

        三,scrapy_redis的流程:

1.在scrapy_redis中,所有的待抓取的请求对象和去重指纹都是存在一个公共的redis服务中  (主机)
2.所有的请求对象在正式存入redis的请求队列之前,都先会去redis中的dupefilter进行指纹集合的比对,来判断之前是否已经存入过
3.所有的scrapy进程共用redis中的请求队列,也就是都会去从redis的请求队列获取任务,每获取出一个队列中会少一个请求  (从机)
4.默认情况下所有的数据都会存入到redis中的item,也可以根据实际情况做调整

        四,分布式爬虫的运行命令:

1.运行:scrapy runspider 爬虫文件名.py
2.设置redis-key  (目的是便于运行时获取起始url)
    - 启动redis的命令:redis-cli
    - 添加redis_key: lpish key_name start_url  例如:lpush x1 http://www.baidu.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨某人...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值