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

 

posted @ 2019-07-03 21:16  烧刘病  阅读(148)  评论(0编辑  收藏  举报
回到页首