scrapy-redis

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

 

posted @ 2018-07-19 17:13  最爱江南小冷  阅读(149)  评论(0编辑  收藏  举报