• 分布式爬虫


    编写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 开始爬取。

  • 相关阅读:
    数据--第53课
    数据--第52课
    数据--第51课
    标准模板库中的优先队列(priority_queue)
    进程的定义
    进程的基本概念
    循环不变式
    插入排序
    模板声明
    标准模板库中的队列(queue)
  • 原文地址:https://www.cnblogs.com/ZH-YC/p/14206313.html
Copyright © 2020-2023  润新知