• 分布式爬虫


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

  • 相关阅读:
    AtCoder Beginner Contest 250
    Codeforces Round #786 (Div. 3)
    Codeforces Round #787 (Div. 3)
    Educational Codeforces Round 128 (Rated for Div. 2)
    OpenSSL测试大数
    大数库GMP测试
    实验一密码引擎商用密码算法实现2交叉测试(选做)
    数据转换16进制字符
    NOI 2021 题目选做
    NOI 2017 题目选做
  • 原文地址:https://www.cnblogs.com/ZH-YC/p/14206313.html
Copyright © 2020-2023  润新知