scrapy中的settings设置:
#使用了scrapy_redis的去重组件,在redis数据库里做去重 DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" #使用了scrapy_redis的调度器,在redis里分配请求 SCHEDULER = "scrapy_redis.scheduler.Scheduler" #在redis中保持scrapy-redis用到的各个队列,从而允许暂停和暂停后恢复,也就是不清理redis queues SCHEDULER_PERSIST = True #管道设置 ITEM_PIPELINES = { "redis_scrapy.pipelines.RedisScrapyPipeline": 100, 'scrapy_redis.pipelines.RedisPipeline': 400, } #指定redis数据库的连接参数 REDIS_HOST = 'localhost' REDIS_PORT = 6379
spider中的设置:
from scrapy_redis.spiders import RedisSpider #要修改继承的类为RedisSpider class RedisSpiderSpider(RedisSpider): name = "redis_spider" #Redis中key的名字 redis_key = 'datas' def parse(self, response): #当Redis中有数据时自动获取并发起请求 print(response.text)
Redis插入数据设置:
可以使用:LPUSH和RPUSH命令插入一个列表数据
实例:
RPUSH data 'aaaa' #表示在列表data最后面插入一条数据aaaa
也可以使用循环批量插入数据:
import redis r = redis.StrictRedis(host='localhost',port=6379)#连接Redis for data_list in datas_list: print(data_list) r.lpush('datas',data_list)
总结:
1.在scrapy的settings中设置Redis相关的连接配置
2.在spider继承RedisSpider类,并设置redis_key的名字;拿到数据后是自动发起请求的,可以打印response的text文本查看数据
3.插入数据到Redis