ziyuyue

scrapy 改写分布式爬虫

  1. 将爬虫的类从 scrapy.Spider 变成 scrapy_redis.scrapy.RdisSpider;或者从 scrapy.CrawlSpider 变成 scrapy_redis.spider.RedisCrawlSpider
  2. 将爬虫的 start_urls 删掉。增加一个 redis_key=\'xxx\'。
  3. 修改配置文件

    scrapy-redis 去重组件

    DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

    scrapy-redis 调度组件

    SCHEDULER = "scrapy_redis.scheduler.Scheduler"

    scrapy-redis 项目中途可以暂停,不会清空 redis 数据库

    SCHEDULER_PERSIST = True

    指定 redis 数据库的 ip 及端口号,不写默认为本地

    REDIS_HOST = ip
    REDIS_PORT = host

    ·scrapy-redis 的管道文件,把数据写进 redis 数据库,不启用则不会写进去·

    如果中途需要把数据存到其他数据库,scrapy-redis 的优先级应是最低的,因为 scrapy-redis 没有 return

    ITEM_PIPELINES = {
    \'scrapy_redis.pipelines.RedisPipeline\': 400,
    }

  4. 在 master 端 lpush [redis_key中的名字] [start_urls]

分类:

技术点:

相关文章: