redis-scrapy分布式爬虫
scrapy-redis提供共享的调度器和管道 步骤: 1.修改爬虫文件 -导包 from scrapy_redis.spiders import RedisCrawlSpider -将爬虫类的父类修改成 RedisCrawlSpider -***将allow_demains和start_url删掉 -添加一个新的属性 -redis_key=‘’#调度器队列的名称 完善爬虫类的相关代码即可 2.配置文件的编写 指定管道 ITEM_PIPELINES = { 'scrapy_redis.pipelines.RedisPipeline': 400 } 指定调度器 # 增加了一个去重容器类的配置, 作用使用Redis的set集合来存储请求的指纹数据, 从而实现请求去重的持久化 DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" # 使用scrapy-redis组件自己的调度器 SCHEDULER = "scrapy_redis.scheduler.Scheduler" # 配置调度器是否要持久化, 也就是当爬虫结束了, 要不要清空Redis中请求队列和去重指纹的set。如果是True, 就表示要持久化存储, 就不清空数据, 否则清空数据 SCHEDULER_PERSIST = True 3.指定数据库: REDIS_HOST = '192.168.16.247' REDIS_PORT = 6379 4.修改redis的配置文件 -关闭默认127.0.0.1 -关闭保护模式 protected-mode no 6.结合配置文件启动redis服务 redis-server --conf 7.启动redis客户端 -redis-cli 7.5想调度器中扔入起始url 调度器队列存放在redis中 127.0.0.1:6379>lpush 调度器队列名称 起始url 8.启动执行分布式工程 scrapy crawl fbs