美文网首页
14-2 分布式爬取配置

14-2 分布式爬取配置

作者: 学飞的小鸡 | 来源:发表于2018-11-01 20:41 被阅读0次

    需先安装scrapy_redis

    pip install scrapy_redis
    

    一、settings.py

    ITEM_PIPELINES = {
       'CrawlSpiderDemo.pipelines.CrawlspiderdemoPipeline': 300,
        # 分布式的爬虫的数据可以不通过本地的管道(数据不需要往本地存),数据需要存在redis数据库中,在这里需要加入一个redis数据库的管道组件
        "scrapy_redis.pipelines.RedisPipeline":400
    }
    
    # 指定Redis数据库相关配置
    # Redis的主机地址
    REDIS_HOST = "10.36.133.159"
    # 端口号
    REDIS_PORT = 6379
    # 密码
    # REDIS_PARAMS = {"password":'xxxx'}
    
    
    # 1、调度器需要切换成Scrapy_Redis的调度器(这个调度器是Scrapy_Redis组件对scrapy原生调度器的重写,加入一些分布式调度的算法)
    SCHEDULER = "scrapy_redis.scheduler.Scheduler"
    # 2、加入scrapy_redis的去重组件
    DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
    # 3、爬取过程中是否允许暂停
    SCHEDULER_PERSIST = True
    
    

    2、爬虫文件(例:dushu.py)

    # 引入分布式爬虫类
    from scrapy_redis.spiders import RedisCrawlSpider
    
        # start_urls = ['https://www.dushu.com/book/1002.html'] # 分布式的爬虫所有的url都是从redis数据库的相关键下面提取
    
        # redis_key这个属性指定了分布式爬虫在获取url的时候从哪些键中获取的
        redis_key = "dushu:start_urls"
    

    3. 命令行终端连接远程数据库

    redis-cli -h 192.168.238.134 # 远程ip
    
    • 添加爬取路由
    192.168.238.134:6379> lpush dushu:start_urls https://www.dushu.com/book/1005_2.html
    

    相关文章

      网友评论

          本文标题:14-2 分布式爬取配置

          本文链接:https://www.haomeiwen.com/subject/kgkfxqtx.html