分布式爬虫

编写Scrapy-Redis分布式爬虫:

要将一个scrapy项目编程一个scrapy-redis项目只需修改以下三点就可以了:

  1. 将爬虫的类从scrapy.Spider变成scrapy_redis.spiders.RedisSpider ;或者是从scrapy.CrawlSpider变成scrapy_redis.spider.RedisCrawlSpider。
  2. 将爬虫中的start_urls删掉。增加一个redis_key="xxxx"。这个redis_key是为了以后再redis中控制爬虫启动的。爬虫的第一个url,就是redis中通过这个发送出去的。
  3. 在配置文件中增加如下配置:

    # Scrapy-Redis相关配置
    # 确保request存储到redis中
    SCHEDULER = "scrapy_redis.scheduler.Scheduler"
    
    # 确保所有爬虫共享相同的去重指纹
    DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
    
    # 设置redis为item pipeline
    ITEM_PIPELINES = {
        'scrapy_redis.pipelines.RedisPipeline': 300,
    }
    
    # 在redis中保持scrapy-redis用到的队列,不会清理redis中的队列,从而可以实现暂停和恢复的功能。
    SCHEDULER_PERSIST = True
    
    # 设置连接redis信息
    REDIS_HOST = '127.0.0.1'	# 查看你的IP地址 进行更改		查看IP地址命令: ipconfig
    REDSI_PORT = 6379
    

      

    1. 运行爬虫:
      i. 在爬虫服务器上。进入爬虫文件所在的路径,然后输入命令:scrapy runspider [爬虫名字]。
      ii. 在Redis服务器上,推入一个开始的url链接:redis-cli> lpush [redis_key] start_url 开始爬取。

posted @ 2020-12-29 14:18  流年—  阅读(74)  评论(0编辑  收藏  举报