您的位置:首页 > 数据库 > Redis

scrapy-redis

2020-03-08 15:25 597 查看

1:安装

 

2:redis基本语句

redis和栈一样先进后出

#字符串
set age 18 EX 60 #设置age=18 过期时间60秒
ttl age #查看过期时间
expire [key] 60  #设置key 60秒过期
keys * #查看所有信息
#添加列表
lpush websites baidu.com #从左添加
rpush websites google.cm #从右添加
lrange websites 0 -1 #查看列表websites 第0个到最后一个元素 切片模式
lpop websites   #移除website最左边的元素
rpop websites   #移除website最右边的元素
lrem websites count value #移除websites中count个value
(count大于0表示从左往右找  count<0表示从右往左找 count=0表示删除所有)
lindex websites 1 #返回列表中的某个值
llen websites #返回列表中的值的个数
#集合 相对于列表无序,不能重复,唯一
sadd tem1 yaoming #添加姚明到集合tem1
smembers tem1 #查看tem1中的值
srem [key] #移除元素
scard team1 #查看有多少元素
sinter set1 set2 #计算交集
sunion set1 set2 #计算并集
sdiff set1 set2 #计算差集
#hash操作  类似python的字典
hset website baidu www.baidu.com #设置key=baidu value=www.baidu.com的
hset website google www.google.com
hget website baidu #查看baidu的值
hdel website baidu #删除
hgetall website #查看website中所有的

   

 9-2

3:修改一个普通爬虫成分布式爬虫

编写Scrapy-Redis分布式爬虫:

要将一个

Scrapy
项目变成一个
Scrapy-redis
项目只需修改以下三点就可以了:

  1. 将爬虫的类从
    scrapy.Spider
    变成
    scrapy_redis.spiders.RedisSpider
    ;或者是从
    scrapy.CrawlSpider
    变成
    scrapy_redis.spiders.RedisCrawlSpider
  2. 将爬虫中的
    start_urls
    删掉。增加一个
    redis_key="xxx"
    。这个
    redis_key
    是为了以后在
    redis
    中控制爬虫启动的。爬虫的第一个url,就是在redis中通过这个发送出去的。
  3. 在配置文件中增加如下配置:
# Scrapy-Redis相关配置
# 确保request存储到redis中
SCHEDULER = "scrapy_redis.scheduler.Scheduler"

# 确保所有爬虫共享相同的去重指纹
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

# 设置redis为item pipeline
ITEM_PIPELINES = {
'scrapy_redis.pipelines.RedisPipeline': 300
}

# 在redis中保持scrapy-redis用到的队列,不会清理redis中的队列,从而可以实现暂停和恢复的功能。
SCHEDULER_PERSIST = True

# 设置连接redis信息
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379

 

转载于:https://www.cnblogs.com/jixiaoleng4/p/9336996.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
anda9661 发布了0 篇原创文章 · 获赞 0 · 访问量 313 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: